执行npm run build时webpack出现Unexpected token语法错误如何解决
问题根因
两次报错的核心原因是当前使用的Node.js版本过低,无法支持新版react-scripts依赖的ES6+语法特性:
- 第一次报错的对象扩展运算符
...需要Node.js 8.3.0及以上版本支持 - 第二次报错的
async箭头函数需要Node.js 10.x及以上版本支持
从报错的栈信息可以判断,你当前使用的Node.js版本低于v10,已经不符合React脚手架的最低运行要求。
彻底解决方案
1. 升级Node.js至兼容版本
优先选择长期支持(LTS)的Node.js版本,推荐v16.x或v18.x,这两个版本对当前主流React生态的兼容性最好:
- 如果你使用nvm管理Node版本,执行以下命令:
# 安装v16 LTS版本 nvm install 16 --lts # 切换到刚安装的v16版本 nvm use 16 # 设置为全局默认版本,避免重启终端后失效 nvm alias default 16
- 如果是直接安装的Node.js,下载对应系统的v16/v18 LTS安装包覆盖安装即可。
2. 清理旧依赖并重新安装
旧依赖是基于低版本Node安装的,需要完全清理后重新安装避免兼容性问题:
# 删除node_modules文件夹 rm -rf node_modules # 删除锁文件 rm -f package-lock.json yarn.lock # 重新安装所有依赖 npm install
3. 重新执行构建命令
npm run build
注意事项
如果服务器环境存在多个Node版本,需要确认构建脚本调用的Node路径是你刚升级的高版本,避免全局默认仍然是低版本导致问题复现。
内容的提问来源于stack exchange,提问作者Marcin Szczerbaty
相关产品推荐
相关产品推荐

