如何解决“react-native start”错误的问题。
如何解决“react-native start”错误的问题。
- 我刚刚安装了node.js和cli
- 安装了node.js
- 安装了react-native-cli
npm -g react-native-cli
- 并创建了一个\'新项目\'。
react-native init new_project
- 在这个\'new_project\'目录中,我试图看看metro绑定器是否工作正常。
react-native start
- 但是命令给了我以下错误,metro无法启动。
有没有修复此错误的线索?
(我正在使用Windows 10 OS.)
- 命令:
C:\\projects\\new_proj>react-native start
错误的无效正则表达式:
/(.\\fixtures.|node_modules[]react[]dist[].|website\\node_modules.|heapCapture\\bundle.js|.\\tests.)$/: 未终止的字符类。运行CLI以获取更多详细信息。
SyntaxError: Invalid regular expression: /(.\\fixtures.|node_modules[]react[]dist[].|website\\node_modules.|heapCapture\\bundle.js|.\\tests.)$/: Unterminated character class
at new RegExp ()
at blacklist (D:\\projects\\new_proj\\node_modules\\metro-config\\src\\defaults\\blacklist.js:34:10)
at getBlacklistRE (D:\\projects\\new_proj\\node_modules\\react-native\\node_modules@react-native-community\\cli\\build\\tools\\loadMetroConfig.js:69:59)
at getDefaultConfig (D:\\projects\\new_proj\\node_modules\\react-native\\node_modules@react-native-community\\cli\\build\\tools\\loadMetroConfig.js:85:20)
at load (D:\\projects\\new_proj\\node_modules\\react-native\\node_modules@react-native-community\\cli\\build\\tools\\loadMetroConfig.js:121:25)
at Object.runServer [as func] (D:\\projects\\new_proj\\node_modules\\react-native\\node_modules@react-native-community\\cli\\build\\commands\\server\\runServer.js:82:58)
at Command.handleAction (D:\\projects\\new_proj\\node_modules\\react-native\\node_modules@react-native-community\\cli\\build\\cliEntry.js:160:21)
at Command.listener (D:\\projects\\new_proj\\node_modules\\commander\\index.js:315:8)
at Command.emit (events.js:210:5)
at Command.parseArgs (D:\\projects\\new_proj\\node_modules\\commander\\index.js:651:12)
- 命令:
以上是一段HTML代码,没有明显的语义内容,简单的用HTML标签来展示一些无序列表和有序列表内容。
这是由于node v12.11.0处理正则表达式的方式造成的,有两种方法可以解决这个问题:
方法一:
您可以降级到node v12.10.0,这将应用正确的解析错误处理方式。
方法二:
您可以通过更改位于以下位置的文件来正确终止正则表达式:
\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__\/.*/ ];
今天第一次遇到类似的错误。它出现在\node_modules\metro-config\src\defaults\blacklist.js
中,那里有一个无效的正则表达式需要修改。我将sharedBlacklist
下的第一个表达式从:
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__\/.*/ ];