根据:https://docs.npmjs.com/files/folders
- 本地安装(默认):将内容放入/当前包根目录的 node _模块.
- 全局安装(使用-g):将内容放入/usr/local或安装了 node 的任何位置.
- 如果需要,可以在本地安装.
- 如果要在命令行上运行,请全局安装它->;如果两个都需要,那么在两个地方都安装,或者使用npm链接.
前缀配置
前缀配置默认为 node 的安装位置.在…上
这些文档可能有点过时,但它们解释了为什么全局安装最终会出现在不同的目录中:
(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版本.
This also suggests a solution for getting all team members to have globals stored in the same absolute path relative to their PC, i.e. (run as Administrator):
(Run this in cmd
, not in PowerShell!)
mkdir %PROGRAMDATA%\npm
setx PATH "%PROGRAMDATA%\npm;%PATH%" /M
npm config set prefix %PROGRAMDATA%\npm
打开一个新的命令.exe窗口并重新安装所有全局软件包.
解释(行号):
- 在一个合理的位置创建一个文件夹来存放全局文件(微软正在
- 目录需要在路径上,所以使用
setx .. /M
设置
- 告诉
npm
使用这个新路径.(注意:文件夹在中的%PATH%中不可见.)