name: next-build-node-runtime description: 当 cook-web 执行 npm run build 出现 SyntaxError Unexpected token '?' 或 next/dist/compiled 报错时使用本技能,优先排查 Node 运行时版本不一致问题。
Next Build Node 运行时排障
触发条件
npm run build在next/dist/compiled内部文件报语法错误。- 报错包含
SyntaxError: Unexpected token '?'、Unexpected token '.'等现代语法不兼容信息。 - 构建日志中 Warning 很多,但实际中断点不明确。
工作流
- 在当前目录分别检查运行时版本与路径:
node -v、npm -v、which node、which npm。 - 对照
package.json的engines.node,确认是否匹配。 - 如果 shell 初始化脚本切到了旧 Node,先切到项目要求版本再重新执行
npm run build。 - 构建失败时只抓第一个
Error作为阻断点,不把Warning当作失败原因。 - 若阻断点是 ESLint
Error,做最小改动修复;保留调试日志,不删除console.log。