Nuxt生产构建失败:SyntaxError无效令牌,Node10环境兼容问题
问题原因
报错里的0x3_00是ES2021引入的数字分隔符语法,而Node.js 10完全不支持这个特性。你的AWS CodeBuild环境使用的是Node 10,而Nuxt 2.17.0依赖的consola版本已经用上了这个新语法,导致构建时触发语法错误。
解决办法
升级构建环境的Node版本
Nuxt 2.17.0官方要求Node.js版本 >=14.16.0,直接修改AWS CodeBuild的构建镜像为node:14-alpine或更高版本(比如node:16-alpine),这是最彻底的解决方案,也符合Nuxt的官方环境要求。锁定consola到兼容Node 10的版本
如果无法修改构建环境的Node版本,在package.json中添加resolutions字段,强制指定consola使用支持Node 10的旧版本:"resolutions": { "consola": "2.15.3" }之后重新执行
npm install(需npm 7+)或yarn install,提交修改后的package.json和package-lock.json/yarn.lock到仓库,再触发构建即可。降级Nuxt版本到更早的兼容版
若还未尝试降级到2.15.x系列,该版本Nuxt依赖的consola未使用数字分隔符语法,能兼容Node 10环境。但此方法会放弃Nuxt 2.17.x的新特性,仅作为备选方案。
内容的提问来源于stack exchange,提问作者Boris Kamp
相关产品推荐
相关产品推荐

