启动tmux时出现NPM/NVM错误:NVM与NPM配置不兼容;前缀";选项:当前设置为"&引用;

启动tmux时出现NPM/NVM错误:NVM与NPM配置不兼容;前缀";选项:当前设置为"&引用;,npm,tmux,nvm,Npm,Tmux,Nvm,当我使用tmux、tmux new或tmux new session启动一个新的tmux会话时,我得到以下错误: module.js:549 throw err; ^ Error: Cannot find module '../lib/utils/unsupported.js' at Function.Module._resolveFilename (module.js:547:15) at Function.Module._load (module.js:47

当我使用
tmux
tmux new
tmux new session
启动一个新的tmux会话时,我得到以下错误:

module.js:549
    throw err;
    ^

Error: Cannot find module '../lib/utils/unsupported.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:153:3)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
nvm is not compatible with the npm config "prefix" option: currently set to ""
Run `npm config delete prefix` or `nvm use --delete-prefix v10.8.0 --silent` to unset it.
这似乎是npm的一个问题,因为当我运行
npm--help
时,也会出现.js错误。然而,这只发生在tmux中


有什么解决办法吗?

我认为你应该跑步

npm安装

这应该能奏效

修正:看起来这可能是特定于macOS如何处理的 每个bash shell上的路径。添加建议的路径清除逻辑 到我的个人资料文件修复了这个问题

在tmux上也看到了这一点,通过curl脚本安装了nvm

奇怪的是,当我在tmux中和在我的shell(zsh)中时,我似乎在使用不同版本的npm。当我在tmux中,做一个npm导致
/usr/local/bin/npm
而在zsh中,它是
/Users/brett/.nvm/versions/node/v10.8.0/bin/npm

这似乎与tmux重新加载我的配置文件,并向$PATH追加更多路径有关


看这里:

Bash在tmux中作为登录shell启动。在macOS上,它是~/.bash_配置文件,而不是~/.bashrc


您是否已尝试将
源~/.bashrc
添加到~/.bash_配置文件中?

以下是另一种可能的解决方案:

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

这将删除并重置前缀,您可以稍后编辑。

在互联网上挖掘后,我找到了一些公认的答案:

再次尝试配置$NVM_DIR引用

例如,nvm使用v7.10.0,出现错误:运行
npm config delete prefix
nvm use--delete prefix v7.10.0--silent
将其取消设置

您需要覆盖nvm前缀

npm配置集前缀$NVM_DIR/versions/node/v7.10.0

nvm unalias default
如果您使用的是bash以外的任何其他shell,请确保以这种方式配置tmux:

# set default shell to zsh
set -g default-command /bin/zsh
set -g default-shell /bin/zsh
这为我解决了问题

nvm unalias default
注释掉shell文件中的以下代码(例如~/.zshrc):

注销您的帐户并登录

取消上述代码和源shell文件的插入

nvm unalias default

我也只在MacOS上发现了这个问题。在Linux上运行良好。即使在MacOS上,npm和node也可以很好地工作(我没有得到你所做的JS错误),但是一旦shell启动,我就会得到
nvm与…
不兼容的消息。它还运行node的系统版本,我可以使用不同版本的nvm。但奇怪的是,为什么只有在没有通过brew安装节点的情况下才会发生这种情况。这个问题是关于杰夫普克特的。你查过了吗?没有具体的解决方案,对不起,这些解决方案都不适合我。你能复制它吗?它只在“Mac”上出现问题吗?它在Mac上运行良好。只发生在Mac上的tmux内部。对不起,这对我不起作用。这将在shell启动时立即显示。您是否能够使用
nvm
再现错误?是的,两个都是源代码。同样的问题。你能重现原来的错误吗?我希望这会有所帮助!谢谢,但是如果你阅读了最初发布的问题,你应该会发现这已经尝试过了,但在这里不起作用。你可以看看这个链接(第二个答案,55票):那么我不知道如何解决这个问题,对不起!谢谢你的回答,但这些都不行。你能重现这个问题吗?