![](/img/trans.png)
[英]Install npm (Node.js Package Manager) on Windows (w/o using Node.js MSI)
[英]How to install a global npm package using fnm (Fast Node Manager)?
我的问题
我已经从这个 github repo安装了 fnm(快速节点管理器),除了安装全局 npm 包外,它工作得很好。 例如,众所周知的包nodemon
是我想要全局安装的东西,而不是我的node_modules
项目目录。
正如 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
的行为后提出的解决方案如下:
转到C:\Users\<YOUR_USER>\AppData\Local\fnm_multishells
并删除该目录(如果存在)。
下载全局包时,请通过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>
并通过cmd
或powershell
安装它。 不运行"$(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.