在 Windows 中更改 node.js 模块的默认全局安装目录?

在我的窗口安装 PATH包括 C:\Program Files\nodejs,其中可执行 node.exe是。我能够从 shell 启动 nodenpm。我希望在 C:\Program Files\nodejs中也安装新的可执行程序,但是这似乎不可能实现。

设置 NODE_PATHNODE_MODULES变量不会改变任何东西: 默认情况下,东西仍然安装在 %appdata%\npm中。

如何更改全局安装路径?

352710 次浏览

你需要的一切都在 npm-folders文档里。我现在不想启动我的 Win 笔记本,所以我无法验证它,但是您应该只在配置文件中将 prefix更改为 C:\Program Files\nodejs。如果要为所有用户全局更改它,请编辑 C:\Program Files\nodejs\npmrc文件,否则创建/编辑 C:\Users\{username}\.npmrc

但是这种改变可能会有一些副作用,所以先阅读 这个讨论。我不认为这是一个好主意。

试图将 全球性的软件包安装到 C:\Program Files (x86)\nodejs\给了我 以管理员身份运行问题,因为 npm 试图安装到
C:\Program Files (x86)\nodejs\node_modules\

要解决这个问题,请将 全球性的安装目录更改为 C:\Users\{username}\AppData\Roaming\npm:

C:\Users\{username}\中,创建包含以下内容的 .npmrc文件:

prefix = "C:\\Users\\{username}\\AppData\\Roaming\\npm"

参考资料

环境
将 nodejs x86安装程序安装到 Windows7上的 C:\Program Files (x86)\nodejs\
node --version: v0.10.28
npm --version:1.4.10

你可以在我的 回答另一个问题中看到我的答案。


在 Windows 中,全球性的安装路径实际上位于用户的配置文件目录中

  • %USERPROFILE%\AppData\Roaming\npm
  • %USERPROFILE%\AppData\Roaming\npm-cache
  • 警告: 如果您以不同用户的身份执行定时事件或其他自动化操作,请确保以该用户的身份运行 npm install。一些模块/实用程序应该在全球范围内安装。
  • 安装程序错误: 您可能必须创建这些目录,或者自己将 ...\npm目录添加到用户路径中。

要将所有用户的“ global”位置更改为更合适的共享全局位置 %ALLUSERSPROFILE%\(npm|npm-cache)(作为管理员执行此操作) :

  • 创建一个 [NODE_INSTALL_PATH]\etc\目录
    • 在您尝试 npm config --global ...操作之前,这是必需的
  • 为 npm 模块创建全局(管理)位置
    • C:\ProgramData\npm-cache-npm 模块将放在这里
    • C:\ProgramData\npm-全局安装模块的二进制脚本将放在这里
    • C:\ProgramData\npm\node_modules-全球安装的模块将到这里
    • 适当设置权限
      • 管理员: 修改
      • 经过身份验证的用户: 读/执行
  • 设置全局配置设置(管理员命令提示符)
    • npm config --global set prefix "C:\ProgramData\npm"
    • npm config --global set cache "C:\ProgramData\npm-cache"
  • C:\ProgramData\npm添加到系统的路径环境变量

如果您想将用户的“全局”位置改为 %LOCALAPPDATA%\(npm|npm-cache)路径:

  • 创建必要的目录
    • C:\Users\YOURNAME\AppData\Local\npm-cache-npm 模块将放在这里
    • C:\Users\YOURNAME\AppData\Local\npm-安装模块的二进制脚本将放在这里
    • C:\Users\YOURNAME\AppData\Local\npm\node_modules-全球安装的模块将到这里
  • 配置 npm
    • npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
    • npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
  • 将新的 npm 路径添加到环境的 PATH
    • setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"

默认的全局文件夹是 C:\Users\{username}\AppData\Roaming\npm。 您可以在 C:\Users\{username}\中创建(如果不存在)一个 .npmrc文件并添加 prefix = "path\\to\\yourglobalfolder". 注意,在窗口中,路径应该由 double back-slash分隔。

基于 chocolatey的安装概念和@Tracker 提出的想法,我做了以下工作,所有 Windows 上的用户都很高兴地使用了 nodejsnpm

选择 C:\ProgramData\nodejs作为 nodejs的安装目录,并使用管理员组中的任何用户安装 nodejs

这可以用巧克力做成: choco install nodejs.install -ia "'INSTALLDIR=C:\ProgramData\nodejs'"

然后在安装目录的根目录下创建一个名为 npm-cache的文件夹,在上面的文件夹之后是 C:\ProgramData\nodejs\npm-cache

在安装目录的根目录下创建一个名为 etc的文件夹,在上面的命令之后是 C:\ProgramData\nodejs\etc

设定 NODE环境变量为 C:\ProgramData\nodejs

设定 NODE_PATH环境变量为 C:\ProgramData\nodejs\node_modules

确保将以前创建的 %NODE%环境变量(或其路径)添加到 %PATH%环境变量。

用以下内容编辑 %NODE_PATH%\npm\npmrc

在命令提示符下,像这样设置全局配置..。

npm config --global set prefix "C:\ProgramData\nodejs"

npm config --global set cache "C:\ProgramData\nodejs\npm-cache"

最好在更新 npm (npm -g install npm@latest)或尝试安装任何 npm模块之前按顺序执行上述步骤,这一点很重要。

执行上述步骤有助于我们将 nodejs作为系统范围的安装运行,所有具有适当权限的用户都可以轻松使用它。然后,每个用户可以根据需要运行 nodenpm

我试了这里的大部分答案,似乎没有工作,在我的情况下。因此,我将 env 变量中的 Temp 位置更改为 C: npm。然后它开始工作。这不是一个好主意,而是一个暂时的解决办法。

使用从 用户{ username } AppData 漫游 npm用户{ username } AppData 漫游 npm-cache路径到目的地的 Windows 符号链接对我来说非常有用。

如何添加符号链接

enter image description here

在 Windows 中,如果您想将磁盘 C 中的 npm 或 nodejs 文件夹移动到另一个位置,但它仍能确保 node 和 npm 工作正常,您可以创建如下符号链接: 打开命令提示符:

mklink /D "your_location_want_to_create_symlink" "location_of_node_npm_file"

例如:

mklink /D "C:\Users\MyUser\AppData\Roaming\npm" "D:\Nodejs Data\npm"

现在您已经为 npm 文件夹创建了一个符号链接,该符号链接将引用 D:\Nodejs Data\npmEverything。

您应该使用这个命令来设置 npm 包的全局安装位置

(git bash) npm config --global set prefix </path/you/want/to/use>/npm

(cmd/git-cmd) npm config --global set prefix <drive:\path\you\want\to\use>\npm

您也可以考虑它旁边的 npm-cache位置。(就像在 Windows 上的正常 nodejs 安装一样)

(git bash) npm config --global set cache </path/you/want/to/use>/npm-cache

(cmd/git-cmd) npm config --global set cache <drive:\path\you\want\to\use>\npm-cache

从程序文件夹中完全删除节点文件夹。卸载 node.js,然后重新安装。 更改环境变量的路径,删除 c 中的. npmrc 文件: useryourusername

它不需要太多的配置只需要进入高级系统设置复制您安装节点的路径,创建一个环境变量,并在提示符中检查 node-v 命令!

要更改 Windows 中 node.js (npm)模块的默认全局安装目录,需要修复2个路径。

使用以下命令尝试全局安装节点模块时,首先检查安装节点模块的当前路径:

Npm list-g —— deep = 0

它将返回当前正在安装节点模块的路径。 示例: D: vsc 类型脚本

现在访问以下路径查看 npm 和 npm-cache 文件夹。 C: 用户用户名(或号码) AppData 漫游

在您的 C 驱动器的漫游文件夹中,您将找到 npm 和 npm-cache 文件夹。 点击 + npm + 文件夹,选择路径[只需点击酒吧路径将自动选择,复制它]。这是一个你需要选择的路径图像

复制此路径后,将其设置为环境变量,并使用变量名 Path (任何可以选择作为名称的内容)。 现在您已经设置了 npm 文件夹的路径,现在是设置前缀的时候了。 进入 npm 文件夹,检查 node _ module 文件夹是否存在,如果没有创建名为 node _ module 的新文件夹。 完成所有步骤后,所有全局模块都将进入此文件夹。

最后一步: 转到 CMD 并右键执行以下命令:

Npm 集前缀 C: Users username (Number) AppData Roaming npm node _ module

同样,这也是我们为环境变量选择的路径,我们只是在路径中添加了一个文件夹,这个文件夹就是 node _ module。

一切就绪,现在试试,会成功的。

通过以下命令查找全局节点包安装的当前路径。

Npm list-g —— deep = 0

通过以下命令将此路径更改为正确路径。

Npm 集前缀 C: Users username (Number) AppData Roaming npm node _ module

这对我很有效。读一下我之前的答案,更好地理解。

  • 第一步 :

    Npm 配置获取前缀

    • 默认路径是: %USERPROFILE%\AppData\Roaming\npm
  • 第二步 :

    Npm 配置获取缓存

    • 默认路径是: %USERPROFILE%\AppData\Roaming\npm-cache
  • 第三步 :

    配置集前缀

    • 例子 npm config set prefix C:\\dev\\node\\npm
  • 第四步 :

    配置集缓存

    • 例子 npm config set cache C:\\dev\\node\\npm-cache

再次运行步骤1和2,检查路径是否按要求更新

就是这样。无论何时安装全局包,您都应该看到它们安装在 npm node _ module 中