React Native出现import保留字误用错误,疑为Babel问题
你遇到的这个错误,本质是Babel没有正确转译ES6的import语法,结合你说项目一天前还正常、执行npm install后才出问题的情况,大概率是依赖版本冲突或者Babel配置出了问题,我给你几个针对性的解决方案:
1. 修正Babel配置文件名
你提到的babel.src文件,Babel是不会识别的——Babel默认读取的是根目录下的.babelrc文件(注意文件名开头的点)。先把这个文件重命名为.babelrc,这是最容易忽略的小问题。
2. 调整Babel配置内容
React Native项目有专门的Babel预设,单独使用es2015预设可能和React Native的内置转译逻辑冲突。把你的.babelrc内容改成下面这样:
{ "presets": ["react-native"] }
如果你的项目需要额外的ES语法特性(比如阶段2的提案),可以在plugins里添加对应的插件,但核心用react-native预设就足够覆盖React Native项目的基础转译需求了。
3. 清理依赖缓存并重新安装
npm install可能拉取了不兼容的依赖版本,试试这套标准的"重置依赖"流程:
- 删除项目根目录下的
node_modules文件夹 - 删除
package-lock.json文件(如果用Yarn的话就删yarn.lock) - 运行
npm cache clean --force清理npm的本地缓存 - 重新执行
npm install
4. 清理package.json里的冗余依赖
看你提供的package.json,里面同时安装了babel-preset-es2015、babel-preset-env和babel-preset-react-native,这些预设之间很可能存在版本冲突。React Native 0.52版本对应的babel-preset-react-native已经包含了必要的ES语法转译能力,建议把babel-preset-es2015和babel-preset-env从devDependencies中移除,避免冲突。
另外,你的package.json里"react-native": "^0.52.0",这一行末尾多了个逗号,虽然现在npm大多能兼容这种写法,但最好去掉它,避免潜在的JSON解析问题。
按照上面的步骤一步步来,应该就能解决这个import语法错误了。
内容的提问来源于stack exchange,提问作者anil sidhu

