Vercel部署时遇Unexpected token '??='错误,本地正常求解决
解决Vercel部署时的
??=语法错误问题 本地开发环境运行项目一切正常,但部署到Vercel时出现以下语法错误:
SyntaxError: Unexpected token '??=' at wrapSafe (internal/modules/cjs/loader.js:1029:16) at Module._compile (internal/modules/cjs/loader.js:1078:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10) at Module.load (internal/modules/cjs/loader.js:979:32) at Function.Module._load (internal/modules/cjs/loader.js:819:12) at Module.require (internal/modules/cjs/loader.js:1003:19) at require (internal/modules/cjs/helpers.js:107:18) at Object.<anonymous> (/vercel/path0/node_modules/next/dist/telemetry/post-payload.js:17:20) at Module._compile (internal/modules/cjs/loader.js:1114:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10) Error: Command "npm run build" exited with 1 Deployment completed BUILD_UTILS_SPAWN_1: Command "npm run build" exited with 1
解决方法:
统一Node.js版本:
??=是ES2021引入的逻辑空赋值运算符,需要Node.js 16.0.0及以上版本支持。本地和Vercel环境版本不一致是核心问题。- 在项目根目录创建
.nvmrc文件,写入目标版本(比如18),Vercel会自动读取该文件使用对应Node版本。 - 或者在Vercel控制台进入项目「Settings」→「General」→「Node.js Version」,手动选择16+的版本。
- 在项目根目录创建
验证Next.js版本兼容性:确保项目使用的Next.js版本与指定的Node.js版本兼容,避免因框架依赖导致的语法支持问题。
清理依赖缓存:部署时勾选Vercel部署界面的「Skip Cache」选项,强制重新安装依赖;也可以本地删除
node_modules和package-lock.json后重新提交代码,让Vercel重新拉取依赖。
内容的提问来源于stack exchange,提问作者Saksham Kushwaha
相关产品推荐
相关产品推荐

