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


当前回答

我也遇到过同样的问题,这是因为node和nodejs的npm冲突

因此,通过以下命令删除nodejs

sudo apt-get remove nodejs

这将删除所有与nodejs相关的包,

在上面的命令之后,您必须运行autoremove命令

sudo apt autoremove

这样问题就解决了,

其他回答

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

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.

我有相同的错误消息,但其他解决方案。 在curl (install.sh)期间自动生成的路径不匹配。 检查这个:

echo $NVM_DIR

在我的例子中:/var/www//.nvm。显示在您自动生成的bash文件中,并更改它并替换它:(~/。bash_profile、~ /。zshrc ~ /。配置文件或~/.bashrc)

取代

export NVM_DIR="$HOME/.nvm"

(例如)

export NVM_DIR="$HOME.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_PACKAGES="${HOME}/.npm-packages"

PATH="$NPM_PACKAGES/bin:$PATH"

从我的.bashrc和能够运行npm install -g package-name,而不需要sudo权限或有错误消息出现在我的shell窗口。