npm完全无响应,安装包触发SyntaxError,更新nvm/npm/node仍无效
解决npm执行时的SyntaxError: Unexpected identifier错误
你遇到的错误是因为当前使用的Node.js版本不支持新版本npm中用到的async箭头函数语法,错误详情如下:
Users/BenNolan/.node/lib/node_modules/npm/lib/cli.js:66 module.exports = async process => { ^^^^^^^ SyntaxError: Unexpected identifier at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:414:25) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Module.require (module.js:366:17) at require (module.js:385:17) at Object.<anonymous> (/Users/BenNolan/.node/lib/node_modules/npm/bin/npm-cli.js:2:1) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10)
以下是具体解决步骤:
- 确认当前Node.js版本:运行
node -v,如果版本低于7.6.0,说明版本过低,新版本npm依赖的语法需要更高版本Node支持。 - 切换到兼容的Node版本:用nvm安装长期支持版并切换,执行
nvm install --lts,完成后运行nvm use --lts。 - 验证环境变量配置:检查/.bashrc或/.zshrc中是否包含nvm初始化脚本
source ~/.nvm/nvm.sh,没有的话添加后重启终端,再次确认node -v显示的版本是否正确。 - 清理旧的全局npm残留:如果切换版本后问题仍存在,删除旧的全局npm目录
rm -rf ~/.node/lib/node_modules/npm,然后重新安装npm:npm install -g npm@latest。 - 设置默认Node版本:执行
nvm alias default <你的目标版本号>,确保每次打开终端都自动使用兼容版本。
内容的提问来源于stack exchange,提问作者user8768174
相关产品推荐
相关产品推荐

