根据:https : //docs.npmjs.com/files/folders
- 本地安装(默认):将内容放入当前软件包根目录的./node_modules中。
- 全局安装(带有-g):将内容放入/ usr / local或安装节点的任何位置。
- 如果您需要require(),请在本地安装。
- 如果要在命令行上运行它,请全局安装它。->如果两者都需要,则将其安装在两个地方,或使用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上的默认位置,并且在实施替代之前我可能已经安装了Office版本。
这也提出了一种解决方案,使所有团队成员将全局变量存储在相对于其PC的相同绝对路径中,即(以管理员身份运行):
mkdir %PROGRAMDATA%\npm
setx PATH "%PROGRAMDATA%\npm;%PATH%" /M
npm config set prefix %PROGRAMDATA%\npm
打开一个新的cmd.exe窗口,然后重新安装所有全局软件包。
说明(按行号):
- 在一个合适的位置创建一个文件夹来保存全局变量(Microsoft坚决不应该写入ProgramFiles,因此%PROGRAMDATA%似乎是下一个逻辑位置。
- 该目录必须位于路径上,因此可
setx .. /M
用于设置系统路径(在HKEY_LOCAL_MACHINE下)。这就是要求您在具有管理员权限的shell中运行它的原因。
- 告诉
npm
使用此新路径。(注意:文件夹在此shell中的%PATH%中不可见,因此必须打开一个新窗口)。