繁体   English   中英

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

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

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

全局安装软件包时似乎没有问题: 在此处输入图像描述

在检查全局包列表时, nodemon似乎在那里: 在此处输入图像描述

但是在运行命令nodemon时,我得到以下输出: 我的终端输出错误的图像

正如 fnm存储库文档中所见,需要运行这段代码eval "$(fnm env --use-on-cd)"; 加载时以使 fnm 正常工作,这就是我在.bashrc文件中所做的。

注意我使用的是 Windows 10,似乎在我的 mac 笔记本电脑上工作。

问题
如何为所有或至少一个 fnm 节点版本安装全局 npm 包? 我的意思是,通过运行fnm use <NODE_VERION>您可以指定要使用的节点版本,这也可以在存储库文档中看到。 我希望能够运行nodemon命令,而无需将其安装在项目的node_modules目录中。

如前所述,这实际上适用于我的 OS X 机器(又名我的 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 包。

编辑
我刚刚遇到了同样的问题,并确认您甚至不需要删除fnm_multishells目录。 只需运行npm -g remove <whatever>并通过cmdpowershell安装它。 不运行"$(fnm env --use-on-cd)"; 负载。

您不需要删除多壳。 问题是 Git Bash 路径。

修复在这里: https ://github.com/Schniz/fnm/issues/390

把它放在你的 .bashrc

eval $(fnm env | sed 1d)
export PATH=$(cygpath $FNM_MULTISHELL_PATH):$PATH

if [[ -f .node-version || -f .nvmrc ]]; then
    fnm use
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM