运行 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”