全球NPM在Windows上安装位置?

我不是100%肯定的,但我相信我安装在家庭和办公室PC上的Windows安装程序的节点v5。

在我的家用电脑全局安装发生在%APPDATA%下:

(dev) go|c:\srv> which lessc c:\users\bjorn\appdata\roaming\npm\lessc c:\users\bjorn\appdata\roaming\npm\lessc.cmd 

而在我的办公室PC上,他们在程序文件下:

 (dev) go|w:\srv> which lessc c:\program files\nodejs\lessc c:\program files\nodejs\lessc.cmd 

我需要为PyCharm的文件监视器提供许多这些全局工具的完整path,由于我分享的项目文件在用户文件夹下没有全局资源是有意义的。

为什么全局安装最终会放在不同的文件夹中,我如何强制它们到所有团队成员都通用的位置?

如果您在全球范围内安装软件包,这些是典型的npm路径:

 Windows XP - %USERPROFILE%\Application Data\npm\node_modules Newer Windows Versions - %AppData%\npm\node_modules 

根据: https : //docs.npmjs.com/files/folders

  • 本地安装(默认):将东西放在当前软件包根目录的./node_modules中。
  • 全局安装(使用-g):把东西放在/ usr / local或安装节点的地方。
  • 如果你打算要求()它在本地安装。
  • 如果要在命令行上运行它,请全局安装它。 – >如果你需要两个,那么把它安装在两个地方,或使用npm链接。

前缀配置

前缀config默认为安装节点的位置。 在大多数系统上,这是/usr/local在Windows上,这是node.exe二进制文件的确切位置

该文档可能有点过时,但他们解释了为什么全局安装可能会在不同的目录中结束:

 (dev) go|c:\srv> npm config ls -l | grep prefix ; prefix = "C:\\Program Files\\nodejs" (overridden) prefix = "C:\\Users\\bjorn\\AppData\\Roaming\\npm" 

根据其他的答案,它可能看起来像覆盖现在在Windows上的默认位置,我可能已经安装了我的办公室版本之前,这个覆盖正在实施。

这也意味着一个解决方案,让所有的团队成员都存储在相对于他们的PC相同的绝对路径,即(以管理员身份运行):

 mkdir %PROGRAMDATA%\npm setx PATH "%PROGRAMDATA%\npm;%PATH%" /M npm config set prefix %PROGRAMDATA%\npm 

打开一个新的cmd.exe窗口并重新安装所有的全局包。

说明(按lineno。):

  1. 在合理的位置创建一个文件夹来保存全局变量(微软坚持认为你不应该写入ProgramFiles,所以%PROGRAMDATA%好像是下一个逻辑地方。
  2. 该目录需要在路径上,所以使用setx .. /M来设置系统路径(在HKEY_LOCAL_MACHINE下)。 这就是要求你在具有管理员权限的shell中运行这个。
  3. 告诉npm使用这个新的路径。 (注意:这个文件夹在这个shell的%PATH%中是不可见的,所以你必须打开一个新的窗口)。

只需按下窗口按钮,然后输入%APPDATA%并输入回车。

以上是您可以找到\ npm \ node_modules文件夹的位置。 这是全局模块在您的系统中的位置。