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

React Native初始化项目遇Babel插件弃用警告,求解决方案

解决React Native初始化时Babel废弃插件及uglify-es警告问题

一、处理Babel废弃插件警告

这些@babel/plugin-proposal-*插件对应的ES提案已正式纳入ECMAScript标准,官方停止维护并要求替换为@babel/plugin-transform-*版本,处理方式分两种情况:

1. 项目手动配置了废弃插件

  • 打开项目的Babel配置文件(babel.config.js或.babelrc),将所有@babel/plugin-proposal-xxx替换为对应的@babel/plugin-transform-xxx,比如:
    • 替换@babel/plugin-proposal-nullish-coalescing-operator → @babel/plugin-transform-nullish-coalescing-operator
    • 替换@babel/plugin-proposal-class-properties → @babel/plugin-transform-class-properties
    • 其余插件按此规则依次替换
  • 执行命令卸载旧插件并安装新插件:
    npm uninstall @babel/plugin-proposal-nullish-coalescing-operator @babel/plugin-proposal-class-properties @babel/plugin-proposal-numeric-separator @babel/plugin-proposal-optional-catch-binding @babel/plugin-proposal-optional-chaining @babel/plugin-proposal-async-generator-functions @babel/plugin-proposal-object-rest-spread
    npm install --save-dev @babel/plugin-transform-nullish-coalescing-operator @babel/plugin-transform-class-properties @babel/plugin-transform-numeric-separator @babel/plugin-transform-optional-catch-binding @babel/plugin-transform-optional-chaining @babel/plugin-transform-async-generator-functions @babel/plugin-transform-object-rest-spread
    

2. 间接依赖引入废弃插件

如果项目没有手动配置这些插件,是依赖树中其他包间接引入的:

  • 先执行命令排查依赖来源:
    npm ls @babel/plugin-proposal-nullish-coalescing-operator
    
    把上述命令中的插件名换成其他废弃插件,逐个确认引入它们的依赖包。
  • 若该依赖包有更新版本,直接升级依赖即可解决警告;若暂时无法升级,可通过package.json的resolutions字段强制替换为维护中的transform版本:
    在package.json中添加以下内容:
    "resolutions": {
      "@babel/plugin-proposal-nullish-coalescing-operator": "^7.24.7",
      "@babel/plugin-proposal-class-properties": "^7.24.7",
      "@babel/plugin-proposal-numeric-separator": "^7.24.7",
      "@babel/plugin-proposal-optional-catch-binding": "^7.24.7",
      "@babel/plugin-proposal-optional-chaining": "^7.24.7",
      "@babel/plugin-proposal-async-generator-functions": "^7.24.7",
      "@babel/plugin-proposal-object-rest-spread": "^7.24.7"
    }
    
    执行npm install重新安装依赖生效。

二、处理uglify-es废弃警告

uglify-es自v3.13.0起已被uglify-js取代,处理方式:

  • 执行命令排查依赖来源:
    npm ls uglify-es
    
  • 若引入它的依赖有更新版本,升级该依赖至使用uglify-js的版本;若无法升级,通过package.json的resolutions强制替换:
    "resolutions": {
      "uglify-es": "npm:uglify-js@^3.17.4"
    }
    
    执行npm install重新安装依赖。

注意事项

React Native最新版本的@react-native/babel-preset已内置所有标准ES特性的转换逻辑,通常无需手动添加上述插件,警告多由旧版间接依赖导致。若暂时无法解决,这些警告不会影响项目正常运行,可先忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 15:16:07