我试图用nvm运行另一个NodeJS版本,但得到这个错误:
$ nvm use v4.2.4
nvm is not compatible with the npm config "prefix" option:
currently set to "/Users/z/.npm-global"
Run `npm config delete prefix` or `nvm use --delete-prefix v4.2.4` to unset it.
我特意设置了前缀,以避免sudo npm(参见https://docs.npmjs.com/getting-started/fixing-npm-permissions)。
是否有任何方法可以使用nvm而不丢失全局安装包的前缀?
我解决了这个问题,当它显示在VSCode和JetBrains终端,但不是在本机终端使用以下命令:
ls -la /usr/local/bin | grep "np[mx]"
这将为你提供最终的解析路径:
... npm -> ../lib/node_modules/npm/bin/npm-cli.js
... npx -> ../lib/node_modules/npm/bin/npx-cli.js
从那里,删除文件并重新启动VS Code应该可以修复这个问题:
rm -R /usr/local/bin/npm /usr/local/lib/node_modules/npm/bin/npm-cli.js
rm -R /usr/local/bin/npx /usr/local/lib/node_modules/npm/bin/npx-cli.js
修复链接:https://github.com/nvm-sh/nvm/issues/1690#issuecomment-392014774
只有两个命令可以解决这个问题。
有些用户也可能在打开终端时得到错误。他们首先看到的是这个错误:
nvm is not compatible with the npm config "prefix" option:
currently set to "/Users/z/.npm-global"
执行命令npm config delete prefix或nvm use——delete-prefix v4.2.4取消设置。
因此,要解决这个问题,运行以下两个命令。
注意:将版本号更改为错误中显示的版本号。
$ npm config delete prefix
$ npm config set prefix $NVM_DIR/versions/node/v6.11.1
注意:如果您的终端正在使用zsh,这也可以工作。