You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RN 0.71.x升级后npx react-native-asset报错及自动运行问题求助

问题解决方案

一、解决Metro打包器报错:JSON value 'N' of type NSString cannot be converted to NSNumber

这个报错源于React Native 0.71.x对JSON格式校验更严格,代码或配置文件中存在用字符串'N'/'Y'表示布尔值的情况,而系统期望标准布尔类型true/false。解决步骤如下:

  • 排查所有JSON配置文件(如app.json、package.json、自定义配置文件),以及iOS项目中通过JSON传递的配置项,将所有'N'/'Y'替换为true/false。
  • 检查metro.config.js中的自定义配置,确保传递给Metro的参数没有字符串类型的布尔值,统一使用原生布尔类型。
  • 清理缓存并重新构建:
    # 重置Metro缓存
    npx react-native start --reset-cache
    # iOS项目清理缓存并重装依赖
    cd ios && pod deintegrate && pod install && cd ..
    # Android项目清理构建缓存
    ./gradlew clean
    

二、实现npx react-native-asset自动运行

通过npm/yarn脚本钩子或启动脚本合并即可实现自动执行,提供两种方案:

方案1:安装依赖后自动运行

修改项目根目录package.json,在scripts中添加postinstall钩子,每次执行npm install/yarn install后会自动触发该命令:

{
  "scripts": {
    "postinstall": "npx react-native-asset",
    // 保留原有其他脚本
  }
}

方案2:启动项目前自动运行

若希望每次启动Metro前执行该命令,可将其合并到start脚本中:

{
  "scripts": {
    "start": "npx react-native-asset && npx react-native start",
    // 保留原有其他脚本
  }
}

注:若使用pnpm,需确保postinstall脚本能正常触发,可参考pnpm官方规则调整配置。

内容的提问来源于stack exchange,提问作者Tirzah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:12:42