如何使用 fnm(快速节点管理器)安装全局 npm 包?

How to install a global npm package using fnm (Fast Node Manager)?

我的问题
我已经从 this github repo 安装了 fnm(快速节点管理器),除了安装全局 npm 包外,它工作得很好。例如,众所周知的包 nodemon 是我想全局安装的东西,而不是我的 node_modules 项目目录。

全局安装包似乎没有问题:

并且在检查全局包列表时,nodemon 似乎在那里:

但是当 运行 执行命令 nodemon 时,我得到以下输出:

正如在 fnm repository documentation 中看到的那样,需要 运行 加载这段代码 eval "$(fnm env --use-on-cd)"; 以使 fnm 正常工作,这就是我已在 .bashrc 文件中完成。

备注 我正在使用 windows 10,似乎在我的 mac 笔记本电脑上工作。

问题
如何为所有或至少一个 fnm 节点版本安装全局 npm 包?我的意思是,通过 运行ning fnm use <NODE_VERION> 指定要使用的节点版本,如 repository documentation 中所示。我希望能够 运行 nodemon 命令,而无需将其安装在项目的 node_modules 目录中。

如前所述,这实际上适用于我的 OS X machine(又名我的 mac book pro),但不适用于我的 windows 10 计算机。在彻底分析 fnm 的行为后,我提出的解决方案如下:

  1. 转到 C:\Users\<YOUR_USER>\AppData\Local\fnm_multishells 并删除目录(如果存在)。

  2. 当下载全局包时,通过 CMD 或任何非 bash 的终端(或具有 "$(fnm env --use-on-cd)"; 脚本的终端)执行此操作让 fnm 然后在错误的地方搜索全局包。

这种方法减少了任何路径错误,因为我发现这是核心问题。如上面的屏幕截图所示,当尝试 运行 nodemon 时,它会在 C:\Program Files\Git\Users\Valeri..... 中查找它,但该目录根本不存在。删除步骤 1 中提到的目录后,fnm 停止在该路径中寻找 nodemon,而是使用通过 CMD.

安装的目录

本质上,"$(fnm env --use-on-cd)";脚本允许我们正确使用fnm,但同时导致了这个问题。只需从没有 运行 此命令的终端下载全局 npm 包。