升级VM的Node版本后构建React应用报错日志显示Node版本不一致
问题原因
- 系统中存在多版本Node.js,你手动查询时调用的是升级后的v14.17.5,但npm关联的Node执行路径仍是旧的v10.0.0版本
- 报错
createRequire is not a function是因为该API为Node.js v12.2.0及以上版本独有,v10版本不支持该能力,导致编译失败
解决步骤
先确认npm关联的Node版本,执行以下命令验证:
npm run env | grep NODE_VERSION
如果输出为v10.0.0即可确认是npm调用的Node版本不匹配问题。如果你使用nvm/n等Node版本管理器:
- nvm用户:执行
nvm alias default 14.17.5设置默认版本为v14.17.5,重启终端后执行nvm use 14.17.5,再重新运行构建命令 - n用户:执行
n 14.17.5直接覆盖全局Node版本,再重试构建
如果你是手动安装的Node,未使用版本管理器:
先执行which node获取当前v14.17.5版本的Node执行路径,例如输出为/home/user/bin/node,再执行以下命令绑定npm的Node路径:npm config set node /home/user/bin/node
绑定完成后重试构建即可。临时验证方案:
你可以直接用v14版本Node的全路径调用npm构建,假设你通过which node拿到的路径是/home/user/bin/node,执行以下命令:/home/user/bin/node /usr/local/bin/npm run build
如果构建成功即可完全确认是版本路径问题,按上述步骤修复即可。
内容的提问来源于stack exchange,提问作者Mbanda
相关产品推荐
相关产品推荐

