我使用节点9.3.0已有很长时间了,但是最近我迁移到了10.12.0。一切顺利,当我执行node -v
和npm -v
时,我得到了正确的版本:
Paul-Bergs-Macbook:node paulrberg$ node -v
v10.12.0
Paul-Bergs-Macbook:node paulrberg$ which node
/Users/paulrberg/.nvm/versions/node/v10.12.0/bin/node
Paul-Bergs-Macbook:node paulrberg$ npm -v
6.4.1
Paul-Bergs-Macbook:node paulrberg$ which npm
/Users/paulrberg/.nvm/versions/node/v10.12.0/bin/npm
但是,当我尝试运行任何npm命令时,将使用旧版本。那是:
Paul-Bergs-Macbook:node paulrberg$ npm i truffle -g
/Users/paulrberg/.nvm/versions/node/v9.3.0/bin/truffle -> /Users/paulrberg/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/cli.bundled.js
+ [email protected]
added 81 packages from 311 contributors in 1.715s
和:
npm list -g --depth=0
/Users/paulrberg/.nvm/versions/node/v9.3.0/lib
└── [email protected]
不知道这是否是仍指向最新版本的bash代码,但是我似乎找不到任何证明。运行
env
并检查9.3.0
环境变量不会产生任何结果。到目前为止,我所做的是:
nvm uninstall 9.3.0
删除节点9.3.0 nvm reinstall-with-packages
~/.nvmrc
,然后在其中设置10.12.0
可能是什么问题?
最佳答案
在经过数小时的Unix痛苦的调试之后,我意识到问题是我在npm config
中设置了前缀:
prefix = "/Users/paulrberg/.nvm/versions/node/v9.3.0"
要解决此问题,请确保通过执行以下操作取消设置前缀:
npm config rm prefix
这是mentioned,尽管不一定在nvm doc中闪耀
关于node.js - 通过nvm升级了 Node 和npm,但旧 Node 仍用于全局软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52915019/