node.js node稳定版本 Windows上的全局npm安装位置?




yarn (4)

我不是百分百肯定,但我相信我在家用和办公室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

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

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

我需要向PyCharm的文件监视器提供许多这些全局工具的完整路径,并且由于我共享它的项目文件,因此在用户文件夹下没有全局资源是有意义的。

为什么全局安装最终会出现在不同的文件夹中,如何强制它们到达所有团队成员共有的位置?


如果您全局安装包,这些是典型的npm路径:

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

根据: https://docs.npmjs.com/files/foldershttps://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窗口并重新安装所有全局包。

解释(by lineno。):

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

只需按下Windows按钮并输入%APPDATA%并输入enter。

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


如果您只是想找出npm安装全局模块的位置(此线程的标题),请在运行 npm install -g sample_module 时查看输出

$ npm install -g sample_module C:\ Users \ user \ AppData \ Roaming \ npm \ sample_module - > C:\ Users \ user \ AppData \ Roaming \ npm \ node_modules \ sample_module \ bin \ sample_module.js + [email protected]在2.821s更新了1个包







pycharm