使用NVM时如何让npm start调用当前正确的Node版本
使用NVM时如何让npm start调用当前正确的Node版本
嘿,我之前也碰到过类似的情况,咱们一步步来排查解决,应该能很快搞定:
先确认当前终端会话的Node版本确实生效
有时候切换目录或者新开终端后,NVM的版本可能没自动切换过来。先在项目目录里重新运行一遍:nvm use 18.15.0然后再执行
node -v和npm -v确认版本正确,接着试试npm start,看是不是正常用18.15.0了。检查项目package.json的start脚本
打开项目里的package.json,看看scripts里的start命令有没有硬编码指定Node版本。比如会不会写成这样:"scripts": { "start": "node@10.19.0 ./server.js" }如果是这种情况,把版本号去掉,改成
"start": "node ./server.js"就行,这样就会用当前终端激活的Node版本。检查npm的全局配置
有时候可能不小心设置了npm的node版本参数,运行下面的命令看看:npm config get node_version如果返回的是
10.19.0,那就删掉这个配置:npm config delete node_version确认Node和npm的路径是NVM管理的
运行下面两个命令,检查路径是不是指向NVM的版本目录:which node which npm正常应该显示类似
~/.nvm/versions/node/v18.15.0/bin/node和对应的npm路径,如果是系统全局的路径,那可能还是有路径优先级的问题,可以再检查下终端的环境变量(不过你说没路径问题,这个可以作为备选排查点)。最后试试重启终端
有时候NVM的环境变量在当前会话里没更新彻底,关掉终端重新打开,激活目标版本后再运行npm start,说不定就好了。
备注:内容来源于stack exchange,提问作者Aurelien Marc
相关产品推荐
相关产品推荐

