我要替换的所有实例
() => import('@/components/something/Something')
使用
() => import(/* webpackChunkName: "components--something--Something" */ '@/components/something/Something')
到目前为止,我有此查找/替换正则表达式
查找:\(\) => import\('(.+?)'\)
替换:() => import(/* webpackChunkName: "$1" */ '$1')
替换为:
() => import('@/components/something/Something')
使用
() => import(/* webpackChunkName: "@/components/something/Something" */ '@/components/something/Something')
我的问题是我不知道如何替换“ @”和“ /”字符
我是否需要执行两个查找/替换查询,还是可以只执行一个?我想完全删除“ @”并将“ /”替换为“-”
任何帮助,不胜感激!
谢谢
答案 0 :(得分:1)
有两个查找/替换项:
find: (\(\) => import\()'@/([^']*)'\)
replace: $1/* webpackChunkName: "$2" */ '@/$2')
和
find: ((?:\G(?!^)|\(\) => import\(/\*)[^/*]*)/
replace: $1--
答案 1 :(得分:0)
如果路径始终与@/part1/part2/part3
模式匹配,那么您可以将这些部分单独分组并像这样使用反向引用:
查找:
\(\) => import\('(@/(.+?)/(.+?)/(.+?))'\)
替换:
() => import(/* webpackChunkName: "$2--$3--$4" */ '$1')
但是,如果路径部分的数量发生变化(可能性更大),那么最好的选择就是第二和第三组查找,并按以下方式替换:
摆脱@/
查找:
(?<=\(\) => import\(/\* webpackChunkName: ")@/
替换:
(什么都代替)
将/
转换为--
查找:
(?<=\(\) => import\(/\* webpackChunkName: ")(.*?)/(.*?)(?=" \*/)
替换:
$1--$2
(您必须每行运行几次)