我试图用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

`

I just have a idea. Use the symbolic link to solve the error and you can still use your prefix for globally installed packages. ln -s [your prefix path] [path in the '~/.nvm'] then you will have a symbolic folder in the ~/.nvm folder, but in fact, your global packages are still installed in [your prefix path]. Then the error will not show again and you can use nvm use ** normally. ps: it's worked for me on mac. pps: do not forget to set $PATH to your npm bin folder to use the globally installed packages.

我试过了这篇文章里的每一个答案,但没有一个奏效。重新安装nvm文档https://github.com/nvm-sh/nvm与curl修复了我的问题。