找不到由NVM托管的npm全局安装的软件包返回命令

时间:2019-12-11 22:01:10

标签: node.js npm npm-install nvm

我安装了nvm来管理我的节点版本。如果我全局安装软件包npm install -g fkill,然后运行fkill,则会收到错误消息zsh: command not found: fkill

这里有一些命令可以帮助调试

$ npm root -g
/home/jchi/.nvm/versions/node/v10.15.3/lib/node_modules

看着我的路径...

$ echo $PATH
/home/jchi/.pyenv/shims:/home/jchi/.pyenv/bin:/home/jchi/.nix-profile/bin:/home/jchi/.autojump/bin:/home/jchi/.nvm/versions/node/v10.15.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/games

我在PATH中看不到npm root -g的输出。

我认为nvm有责任将其添加到我的路径中,以便可以运行全局安装的软件包。因此,我看看启动.zshrc可以启动nvm的内容。

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
  105 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

建议表示赞赏

2 个答案:

答案 0 :(得分:0)

在您的PATH上,您的路径下确实有nvm bin文件夹。 /home/jchi/.nvm/versions/node/v10.15.3/bin

我建议检查~/.npmrc中是否有与前缀相关的设置。

如果您有前缀任何设置,请删除它。

然后尝试再次运行npm install -g fkill

答案 1 :(得分:0)

解决此问题的一种方法是将您的 NVM 节点 bin 添加到您的路径中。

  1. 您使用的是哪个节点版本? node --version
  2. 将以下行添加到您的 .bashrc(将 VERSION 替换为您在第 1 步中获得的内容)
export PATH="$HOME/.nvm/versions/node/VERSION/bin:$PATH"

示例:

export PATH="$HOME/.nvm/versions/node/v16.1.0/bin:$PATH"
  1. 当您刷新终端(. ~/.bashrc 或重新打开终端)时,您的全局节点命令现在应该可以工作了。

不幸的是,您使用的每个版本的 Node 似乎都需要这样做。