我试图用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而不丢失全局安装包的前缀?


当前回答

只有两个命令可以解决这个问题。 有些用户也可能在打开终端时得到错误。他们首先看到的是这个错误:

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,这也可以工作。

其他回答

我有同样的问题,执行npm config delete prefix没有帮助我。

但这确实起了作用:

使用brew安装nvm后,创建~/。nvm目录: $ mkdir ~/.nvm

并在~/.bash_profile中添加以下行:

export NVM_DIR=~/.nvm
. $(brew --prefix nvm)/nvm.sh

(检查在~/中没有其他与nvm相关的命令。Bashrc或~/。Profile或~/.bash_profile)

打开一个新终端,这次它应该不会打印任何警告消息。 执行nvm——version命令检查nvm是否正常工作。 然后,使用nvm install node && nvm alias default node安装/重新安装NodeJS。

更多信息

我用自制程序安装了nvm,之后我收到了这个通知:

Please note that upstream has asked us to make explicit managing nvm via Homebrew is unsupported by them and you should check any problems against the standard nvm install method prior to reporting. You should create NVM's working directory if it doesn't exist: mkdir ~/.nvm Add the following to ~/.bash_profile or your desired shell configuration file: export NVM_DIR=~/.nvm . $(brew --prefix nvm)/nvm.sh You can set $NVM_DIR to any location, but leaving it unchanged from /usr/local/Cellar/nvm/0.31.0 will destroy any nvm-installed Node installations upon upgrade/reinstall.

忽略它让我看到了这个错误消息:

nvm不兼容npm配置的“prefix”选项:当前设置为“/usr/local/Cellar/nvm/0.31.0/versions/node/v5.7.1” 执行nvm use——delete-prefix v5.7.1——silent命令取消设置。

我遵循了之前的指南(来自homebrew/nvm),之后我发现我需要重新安装NodeJS。于是我做了:

nvm install node && nvm alias default node

它是固定的。

更新: 使用brew安装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

删除并重置字冠

$ npm config delete prefix 
$ npm config set prefix $NVM_DIR/versions/node/v6.11.1

注意:将版本号更改为错误消息中指示的版本号。

NVM不兼容NPM配置“prefix”选项:目前 set to "/usr/local"执行"npm config delete prefix"或"nvm use " ——delete-prefix v6.11.1——silent"


@gabfiocchi在Github -“你需要覆盖nvm前缀”

刚刚解决了问题。我用符号链接$HOME/。$DEV_ZONE/env/node/nvm目录下。我也面临着同样的问题。我替换了$HOME/中的NVM_DIR。ZSHRC如下

export NVM_DIR="$DEV_ZONE/env/node/nvm"

顺便说一下,请使用curl或wget命令安装NVM,而不是使用brew。欲了解更多信息,请查看Github: 855#issue -146115434本期的评论

我也有同样的问题,每次使用终端都很烦人。我向终端运行命令,它被修复了

对于那些试图从brew中删除nvm的人

仅仅酿造卸载NVM可能是不够的

如果您看到NPM prefix仍然是/usr/local,请执行此命令

Sudo rm -rf /usr/local/ {lib /节点{/ .npm _modules},垃圾桶,分享/人}/ {npm *,节点*,男士一/节点*}