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


当前回答

我在把我的主文件夹移动到linux上的新驱动器后遇到了这个问题。通过删除.nvm文件夹并重新安装nvm来修复

其他回答

让我描述一下我的情况。

首先,检查当前配置

$ nvm use --delete-prefix v10.7.0
$ npm config list

然后,我在输出中发现了错误配置:

; project config /mnt/c/Users/paul/.npmrc
prefix = "/mnt/c/Users/paul/C:\\Program Files\\nodejs"

因此,我删除了/mnt/ C /Users/paul/.npmrc中的C:\\Program Files\\nodejs。

我在使用通过nvm安装的node和通过homebrew安装的nvm时遇到了这个问题。我通过运行brew uninstall nvm, rm -rf $NVM_DIR来解决这个问题,然后使用官方安装脚本重新安装nvm,并重新安装我需要的节点版本。

注意:我还挂载了$NVM_DIR并进行了符号链接。我把它移回了homedir。

以下是我所做的工作

1- sudo su

2-root@antonio:/home/antonio# mv ~/.nvm /tmp/

3- root@antonio:/home/antonio# export NVM_DIR=“/tmp/.nvm”

4- root@antonio:/home/antonio# NVM使用——delete-prefix v17.4.0

5- ' root@antonio:/home/antonio# node -v

`

对于那些第一次通过自制程序安装node,然后将nvm添加到系统中的用户。

如果你看到嘈杂的消息:nvm不兼容npm配置“prefix”选项:当前设置为“/usr/local”,你可能需要删除node_modules和节点本身,解决方案在上面^^有完美的描述,但下面是简单的方法。

由于brew自动将env var添加到.bash_profile中,每次bash加载路径都指向最初安装的版本。

1.进入。/.bash_profile 2. 注释指向节点的行,如下所示 # =出口路径“/ usr /地方/ opt / node@10 / bin:美元路径”

下次bash应该加载nvm安装的节点, 确保bash_profile包含NVM dir 出口NVM_DIR = " /用户/ {your_user_name} / .nvm”

这可能与您的本地Node安装(如果您过去通过NVM以外的其他方式安装了Node)存在冲突。你应该删除这个node实例:

删除node_modules Sudo rm -rf /usr/local/lib/node_modules 删除节点 Sudo rm /usr/local/bin/node 移除节点link CD /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm .

当你不能安装nvm