Unable to load script from assets ‘index.android.bundle‘.

打开React-Native项目运行后出现错误,经排查是node版本太新导致,该错误一般在node.js 12.11.0版本及以上出现。解决办法一是回退到12.10.0版本,若不想回退,可修改node_modules\\metro-config\\src\\defaults\\blacklist.js文件中的正则表达式。

打开React-Native项目,运行之后出现标题错误。百度之后的文章都是如下:

1.首先手动在android/app/src/main目录下建立一个assets文件夹

2.然后在项目的根目录下执行 

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

3.再执行 react-native run-android看是否能运行成功

到第二步的时候提示我:

Invalid regular expression: /(node_modules[\\\]react[\\\]dist[\\\].*|website\\node_modules\\.*|heapCapture\\bundle\.js|.*\\__tests__\\.*)$/: Unterminated character class

 百度一下,结果如下:

错误原因:node版本太新了
目前认为这个错误是node.js 12.11.0 版本及以上才会出现,一般来说我们回退到12.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__\/.*/
];

 再运行react-native run-android就OK了。

 

参考文章:
原文链接:https://blog.csdn.net/highboys/article/details/78513530
原文链接:https://blog.csdn.net/rongyuliu951080er/article/details/110475861

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值