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

React Native项目启动遇废弃警告与ES模块问题,求解决方案

React Native Expo项目启动警告解决方案

下面针对你启动项目时遇到的四个警告,逐个给出解决步骤:

1. [DEP0040] punycode模块弃用警告

这个警告是因为项目依赖的某个包使用了Node.js已弃用的punycode内置模块。解决步骤:

  • 首先升级项目核心依赖:在项目根目录运行
    npx expo upgrade
    # 或者用npm/yarn升级依赖
    npm update
    
  • 如果升级后仍有警告,运行以下命令追踪具体是哪个包触发的:
    node --trace-deprecation npx expo start
    
    根据输出找到对应的包,要么升级该包到兼容版本,要么替换为替代包。

2. [DEP0044] util.isArray API弃用警告

同样是依赖包使用了Node.js弃用的API,处理方式和上面一致:

  • 优先升级expo、metro相关依赖,大部分情况下升级后就能解决。
  • 若未解决,用node --trace-deprecation定位触发包,针对性处理。

3. Bundler缓存为空重建提示

这个不是错误,只是首次启动或者清理缓存后的正常提示,metro会自动重建缓存,等它完成即可。如果每次启动都出现,可以尝试手动预热缓存:

npx metro-cache warmup

4. ES模块加载警告

这个是因为某个文件是ES模块格式,但项目未配置支持。有两种解决方式:

  • 方式一(推荐):在项目根目录的package.json中添加"type": "module"字段:
    {
      "name": "aroa",
      "type": "module",
      // 其他字段...
    }
    
    注意:如果项目中有CommonJS语法的文件(比如用require()),需要将这类文件后缀改为.cjs,或者调整为ES模块的import/export语法。
  • 方式二:找到触发警告的文件,将其后缀改为.mjs,强制以ES模块加载。

完成以上步骤后,重新启动项目,这些警告应该都会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:30:12