我使用节点9.3.0已有很长时间了,但是最近我迁移到了10.12.0。一切顺利,当我执行node -vnpm -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并重新启动计算机后重新安装nvm
  • 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/

    10-14 12:42