运行 expo start 命令后出现无效的正则表达式错误

Posted

技术标签:

【中文标题】运行 expo start 命令后出现无效的正则表达式错误【英文标题】:Invalid Regular Expression error after running expo start command 【发布时间】:2020-04-21 08:47:32 【问题描述】:

我是 React 原生开发的新手。运行后:

expo start

npm start

yarn start

它返回以下错误消息:

Invalid regular expression error

如何调试?

PS C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject> expo start 在 C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject 启动项目 Expo DevTools 在 http://localhost:19002 运行 在浏览器中打开 DevTools...(按 shift-d 禁用) 错误正则表达式无效: /(.*\\__fixtures__\\.*|node_modules[\\\]react[\\\]dist[\\\].*|website\\node_modules\ \.*|heapCapture\\bundle\.js|.*\\__tests__\\.*)$/:未终止的字符类。使用 --verbose 标志运行 CLI 以获取更多详细信息。 语法错误:无效的正则表达式:/(.*\\__fixtures__\\.*|node_modules[\\\]react[\\\]dist[\\\].*|website\\node_modules\\.*|heapCapture\ \bundle\.js|.*\\__tests__\\.*)$/:未终止的字符类 在新的正则表达式 () 在黑名单中(C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\metro-config\src\defaults\blacklist.js:34:10) 在 getBlacklistRE (C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\@react-native-community\cli\build\tools\loadMetroConfig.js:66:59) 在 getDefaultConfig (C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\@react-native-community\cli\build\tools\loadMetroConfig.js:82:20) 加载时(C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\@react-native-community\cli\build\tools\loadMetroConfig.js:118:25) 在 Object.runServer [as func] (C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\@react-native-community\cli\build\commands\server\runServer.js: 82:58) 在 Command.handleAction (C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\@react-native-community\cli\build\index.js:164:23) 在 Command.listener (C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\commander\index.js:315:8) 在 Command.emit (events.js:210:5) 在 Command.parseArgs (C:\Users\Admin\Desktop\React Course\New 文件夹 (2)\newproject\node_modules\commander\index.js:651:12) Metro Bundler 进程以代码 1 退出 在您的环境中设置 EXPO_DEBUG=true 以查看堆栈跟踪。

【问题讨论】:

【参考方案1】:

为了解决这个问题,转到

\node_modules\metro-config\src\defaults\blacklist.js

改变

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

Check this 了解更多信息。

【讨论】:

谢谢,这个问题困扰了我一段时间。【参考方案2】:

对于无法找到 \metro-config 的任何人,我在

下找到了该文件
node_modules\metro\src\blacklist.js

并进行了与上面列出的相同的更改:

/node_modules[/\\]react[/\\]dist[/\\].*/,

/node_modules[\/\\]react[\/\\]dist[\/\\].*/,

【讨论】:

以上是关于运行 expo start 命令后出现无效的正则表达式错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Expo 更新 APNS 证书后出现 AWS Pinpoint 错误

当我运行“npx react-native start”时找不到模块“@expo/metro-config”

mysql 运行 net start mysql 报“服务名无效”解决办法

输入命令“yarn start”后出现 xlsx 样式错误

运行 expo start 时无法解析模块 fs

React-native (expo) - 无效类型