执行npm run build时jsdom出现Unexpected token语法错误求助
解决Next.js构建时出现的SyntaxError: Unexpected token '.'问题
问题原因
你使用的Node.js v12.22.5不支持可选链操作符(?.),而依赖包jsdom的代码中使用了该语法,导致构建时触发语法错误。
解决方案
方案1:升级Node.js版本
Next.js 12.x官方要求Node.js 14.6.0或更高版本,直接将Node.js升级到14.x及以上的LTS版本(如14.21.3、16.20.0等),之后执行以下命令重新构建:
rm -rf node_modules package-lock.json npm install npm run build
方案2:锁定兼容Node.js 12的jsdom版本
如果暂时无法升级Node.js,可在package.json中添加resolutions字段,锁定jsdom到支持Node.js 12的最后大版本(16.x):
"resolutions": { "jsdom": "16.7.0" }
然后执行以下命令重新安装依赖并构建:
rm -rf node_modules package-lock.json npm install npm run build
注:如果使用npm版本低于7,需要安装
npm-force-resolutions包来让resolutions生效,执行npm install -D npm-force-resolutions后,在package.json的scripts中添加"preinstall": "npx npm-force-resolutions",再执行上述步骤。
内容的提问来源于stack exchange,提问作者joh3rd
相关产品推荐
相关产品推荐

