如何解决“react-native start”错误的问题。

10 浏览
0 Comments

如何解决“react-native start”错误的问题。

  1. 我刚刚安装了node.js和cli

    • 安装了node.js
    • 安装了react-native-cli

      npm -g react-native-cli
      

  2. 并创建了一个\'新项目\'。

    react-native init new_project
    

  3. 在这个\'new_project\'目录中,我试图看看metro绑定器是否工作正常。

    react-native start
    

  4. 但是命令给了我以下错误,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标签来展示一些无序列表和有序列表内容。

admin 更改状态以发布 2023年5月24日
0
0 Comments

这是由于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__\/.*/
];

0
0 Comments

今天第一次遇到类似的错误。它出现在\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__\/.*/
];

0