Windows上的全局npm安装位置?

the*_*orn 54 windows node.js pycharm npm

我不是百分百肯定,但我相信我在家用和办公室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
Run Code Online (Sandbox Code Playgroud)

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

(dev) go|w:\srv> which lessc
c:\program files\nodejs\lessc
c:\program files\nodejs\lessc.cmd
Run Code Online (Sandbox Code Playgroud)

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

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

the*_*orn 48

根据: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"
Run Code Online (Sandbox Code Playgroud)

基于其他答案,看起来覆盖现在是Windows上的默认位置,并且我可能在实现此覆盖之前安装了我的办公室版本.

这也提出了一个解决方案,让所有团队成员将全局变量存储在相对于PC的相同绝对路径中,即(以管理员身份运行):

mkdir %PROGRAMDATA%\npm
setx PATH "%PROGRAMDATA%\npm;%PATH%" /M
npm config set prefix %PROGRAMDATA%\npm
Run Code Online (Sandbox Code Playgroud)

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

解释(by lineno.):

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


小智 31

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

Windows XP - %USERPROFILE%\Application Data\npm\node_modules
Newer Windows Versions - %AppData%\npm\node_modules
Run Code Online (Sandbox Code Playgroud)

  • 这是错误的修复您的答案〜/ AppData/Roaming/npm/node_modules $ npm/c/Users/Phil/AppData/Roaming/npm/npm:line 12:node:command not found (6认同)

小智 14

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

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


小智 5

截至今天,全局软件包已安装,例如。npm i -g @vue/cli默认情况下存储在目录中:

C:\Users\<YourUserName>\AppData\Roaming\npm\node_modules
Run Code Online (Sandbox Code Playgroud)