我试图用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而不丢失全局安装包的前缀?
我有同样的问题,执行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会导致终端启动缓慢。您可以按照此说明来解决该问题。
我正在寻找nvm前缀问题的解决方案,发现了这个问题(在找到解决方案之前)。这是我的shell“dialog”。我希望它能对某些人有用。在这篇文章的帮助下,我能够设置为前缀:
https://github.com/npm/npm/issues/6592
当我在使用npm——prefix="" set prefix ""之前尝试npm config delete prefix或nvm use——delete-prefix ""时,我只得到:
npm犯错!不行,代码0
注意,您必须对每个节点版本重复相同的过程,安装后前缀将被设置回(在我的例子中)/usr/local。
$ nvm install 0.10
######################################################################## 100.0%
nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
$ npm --prefix="" set prefix ""
$ nvm use 0.10.44
nvm is not compatible with the npm config "prefix" option: currently set to "/home/john"
Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
$ nvm use --delete-prefix v0.10.44
Now using node v0.10.44 (npm v1.3.10)
$ nvm ls
v0.10.44
v4.4.3
-> system
default -> 4.4.3 (-> v4.4.3)
node -> stable (-> v4.4.3) (default)
stable -> 4.4 (-> v4.4.3) (default)
iojs -> N/A (default)
$ npm config get prefix
/usr/local
当NVM安装文件夹路径具有符号链接时,可能会发生此错误。
解释
NVM默认安装路径为“$HOME/”。但是你的主文件夹可以是另一个驱动器的符号链接,就像我的例子。
例如,我的主文件夹是一个符号链接到另一个驱动器:
- home/myuser -> /bigdrive/myuser
这会导致前缀问题。
解决方案
在您的启动脚本(。bashrc或.zshrc或其他),将NVM文件夹更改为直接路径。
Ex: NVM_DIR = " - bigdrive myuser / nvm”。
. bashrc
export NVM_DIR="/bigdrive/myuser/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"