SyntaxError:无效正则表达式



我更新了webpack版本从4.0.0到5.52.1,编译后使用'bin/webpack'结果是webpack 5.52.1编译成功
但是,我有如下的错误信息

SyntaxError: Invalid regular expression: /^(https?://)?((([a-zd]([a-zd-]*[a-zd])*).)+[a-z]{2,}|((d{1,3}.){3}d{1,3}))(:d+)?(/[-a-zd%_.~+]*)*(?[&a-zd%_.~+=-]*)?(#[-a-zd_]*)?$/: Invalid group
at new RegExp (<anonymous>)
at /node_modules/webpack/lib/javascript/JavascriptParser.js:410:24
at Hook.eval [as call] (eval at create (/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:7:16)
at JavascriptParser.evaluateExpression (/node_modules/webpack/lib/javascript/JavascriptParser.js:3150:25)
at JavascriptParser.getRenameIdentifier (/node_modules/webpack/lib/javascript/JavascriptParser.js:1366:23)
at JavascriptParser.walkVariableDeclaration (/node_modules/webpack/lib/javascript/JavascriptParser.js:2058:31)
at JavascriptParser.walkStatement (/node_modules/webpack/lib/javascript/JavascriptParser.js:1566:10)
at JavascriptParser.walkStatements (/node_modules/webpack/lib/javascript/JavascriptParser.js:1427:9)
at /node_modules/webpack/lib/javascript/JavascriptParser.js:1601:9
at JavascriptParser.inBlockScope (/node_modules/webpack/lib/javascript/JavascriptParser.js:3048:3)
.
.
.
webpack 5.52.1 compiled successfully

我不知道这一点,因为我可以编译与webpack 4.0.0没有错误消息,但迁移到webpack 5.52.1后,我得到了错误在新的RegExp/node_modules webpack/lib/javascript/JavascriptParser.js而且没有/^ (https://) ? (((a-zd)) + [a - z] {2,} | ((d{1,3}。){3}d {1,3})) (d +) ? (/[-a-zd % _。~ +])(和a-zd (? %_.~+=-]) ? (# (-a-zd_) *) ?美元/在我的脚本中,任何人都可以建议我如何找到根本原因并修复这个

资源:rails
: 6.1.4
webpacker: 6.0.0.rc。2
webpack: 5.52.1
webpack-cli

您在(?后面忘记了冒号,并且丢失了反斜杠,在构造函数中使用它们:

new RegExp('^(https?://)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(:\d+)?(/[-a-z\d%_.~+]*)*(?:[&a-z\d%_.~+=-]*)?(#[-a-z\d_]*)?$')

/^(https?://)?((([a-zd]([a-zd-]*[a-zd])*).)+[a-z]{2,}|((d{1,3}.){3}d{1,3}))(:d+)?(/[-a-zd%_.~+]*)*(?:[&a-zd%_.~+=-]*)?(#[-a-zd_]*)?$/

您需要通过假装反斜杠来转义正则表达式中的斜杠。此外,在倒数第二个组的开头有一个冗余的?:

^(https?://)?((([a-zd]([a-zd-]*[a-zd])*).)+[a-z]{2,}|((d{1,3}.){3}d{1,3}))(:d+)?(/[-a-zd%_.~+]*)*([&a-zd%_.~+=-]*)?(#[-a-zd_]*)?$

我可以用以下步骤修复它

  1. fromwebpackershakapacker
  2. const componentRequireContext =更新语法require.context("components"真);常量componentRequireContext = require。上下文("components" true;/^ (https ?://) ? (((a - z d)) + [a - z] {2,} | (( d{1,3}。){3} d {1,3})) ( d +) ? (/[z d % _ ~ +]。)(?: [, a - z d %_.~+=-]) ? (# (z d_) *) ?美元/);

相关内容

最新更新