gpt4 book ai didi

node.js - Windows上的全局npm安装位置?

转载 作者:IT老高 更新时间:2023-10-28 21:52:18 36 4
gpt4 key购买 nike

我不是 100% 确定,但我相信我在我的家庭和办公室 PC 上都从 Windows 安装程序安装了 node v5。

在我的家用 PC 上,全局安装发生在 %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 的文件观察器提供这些全局工具的完整路径,并且由于我共享的项目文件在用户文件夹下没有全局资源是有意义的。

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

最佳答案

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

  • Local install (default): puts stuff in ./node_modules of the current package root.
  • Global install (with -g): puts stuff in /usr/local or wherever node is installed.
  • Install it locally if you're going to require() it.
  • Install it globally if you're going to run it on the command line. -> If you need both, then install it in both places, or use npm link.

prefix Configuration

The prefix config defaults to the location where node is installed. Onmost systems, this is /usr/local. On windows, this is the exactlocation of the node.exe binary.

文档可能有点过时,但它们解释了为什么全局安装最终会出现在不同的目录中:

(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 相同的绝对路径中,即(以管理员身份运行):
(在 cmd 中运行,而不是在 PowerShell 中!)

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

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

解释(按行号):

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

关于node.js - Windows上的全局npm安装位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33819757/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com