NextJS执行npm run build报错:命令未找到及Unexpected token '?'
问题解决:NextJS npm run build 报错 Unexpected token '?'
问题原因
你遇到的Unexpected token '?'错误,核心原因是空值合并运算符??需要Node.js 14.0.0及以上版本支持,而你当前使用的Node.js版本低于这个要求。全局安装的Next.js(通常是较新的稳定版)依赖该语法,因此在低版本Node环境下无法正常解析。
另外,最初出现的“找不到next命令”,是因为项目本地未安装Next.js,且全局也没有对应的可执行文件导致的。
解决方案
1. 检查当前Node.js版本
先确认你的Node版本是否达标:
node -v
如果输出的版本号低于v14.0.0,必须升级Node.js。
2. 升级Node.js(推荐用nvm管理版本)
使用Node版本管理器(nvm)可以轻松切换不同Node版本,避免版本冲突:
- 安装nvm(Linux/macOS可执行:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash,Windows可下载官方安装包) - 安装最新LTS版本:
nvm install --lts - 切换到刚安装的LTS版本:
nvm use --lts
3. 优先使用项目本地的Next.js(不推荐全局安装)
全局安装Next.js容易出现版本不兼容问题,建议在项目目录下本地安装:
npm install next
之后直接用npm run build执行构建(前提是package.json里已配置"scripts": { "build": "next build" }),或者用npx next build临时调用本地版本。
4. 清理全局Next.js(可选)
如果不需要全局的Next.js,执行以下命令卸载,避免后续版本冲突:
npm uninstall -g next
内容的提问来源于stack exchange,提问作者phyouthcenter1
相关产品推荐
相关产品推荐

