为什么 zsh 无法识别来自全局安装的 npm 包的命令?

Why doesn't zsh recognize command from globally installed npm package?

安装 oh-my-zsh 并再次重新安装 node 和 npm 后,我全局安装 npm-check-updates 并尝试调用 'ncu'(npm-check-updates 命令)。但是,我收到一个错误:zsh: command not found: ncu。有谁知道如何解决这个问题?

确保可以在 $PATH 环境变量中找到 'ncu' 包。试试这个,找到应该安装 'ncu' 的位置:

which ncu

如果还是麻烦,试试看是不是在/usr/bin、$HOME/npm/bin、/usr/local/lib或/usr/sbin,检查你的$PATH环境变量包含 'ncu' 的方法。您的 $PATH 环境变量,可以在

中找到
$HOME/.bashrc (Linux)
$HOME/.bash_profile (MacOS)

应该看起来像这样:

export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/npm/bin

安装后您可以 运行 rehash 这样 zsh 将分析 $PATH 上有哪些新的可执行文件可用。

不确定这是否会解决问题,我知道它修复了安装后缺少的选项卡完成条目。

仅供参考,我正在使用 OSX。

问题是我的 .zshrc 中的 export path 是错误的。 这是以前的样子:

export PATH=$HOME/bin:/usr/local/bin:$PATH

请注意,没有任何内容指向 npm 或我全局安装的任何软件包。 对于将来遇到此问题的任何人...

  1. 确保已安装 npm,并且您仍然可以 运行 npm 命令(如果未卸载,则安装 npm)。然后 运行 npm -g list --depth 0 列出所有全局包。
  2. 进入您的主文件夹并按 +Shift+.(显示所有hidden files/folders), 那里应该有一个 .npm 文件夹,确保你在上一步中获得的列表中的包与 bin 文件夹中的包相匹配。
  3. 相应地编辑您的 export PATH 字符串:

export PATH=$HOME/bin:/usr/local/bin:**$HOME/.npm/bin**:$PATH.

这对我有用!

我已经按照以下说明更正了这个问题:

sudo npm install -g npm-check-updates