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

在我的Windows安装PATH包括C:\Program Files\nodejs ,其中可执行node.exe是。 我能够从shell启动node ,以及npm 。 我想要在C:\Program Files\nodejs安装新的可执行C:\Program Files\nodejs ,但似乎无法实现。

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

我如何更改全局安装path?

你需要的一切是阅读npm-folders文件 。 我不想现在启动我的Win笔记本,所以我不能validation它,但你应该只改变prefixc:\Program Files\nodejs在你的configuration文件。 如果要为所有用户全局更改,请编辑c:\Program Files\nodejs\npmrc文件,否则请创build/编辑c:\Users\{username}\.npmrc

但是这个改变可能会有一些副作用,所以在之前阅读这个讨论 。 我认为你的想法不是一个好主意。

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

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

C:\Users\{username}\ ,创build内容为.npmrc文件:

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

参考

  • npm install -g package全局软件包安装到前缀位置
  • npmrc userconfig优先和覆盖
  • npm config ls -l显示prefix = "C:\\Program Files (x86)\\nodejs"

环境
nodejs x86安装程序安装到Windows 7 Ultimate N 64位SP1上的C:\Program Files (x86)\nodejs\
node --version :v0.10.28
npm --version :1.4.10

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


在Windows中, 全局安装path实际上是在用户的configuration文件目录中

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

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

  • 创build一个[NODE_INSTALL_PATH]\etc\目录
    • 这在你尝试npm config --global ... actions之前是必须的
  • 为npm模块创build全局(admin)位置
    • C:\ProgramData\npm-cache – npm模块将会在这里
    • C:\ProgramData\npm – 全局安装模块的二进制脚本将会在这里
    • C:\ProgramData\npm\node_modules – 全局安装的模块将会在这里
    • 适当地设置权限
      • pipe理员:修改
      • authentication用户:读/执行
  • 设置全局configuration设置(pipe理员命令提示符)
    • npm config --global set prefix "C:\ProgramData\npm"
    • npm config --global set cache "C:\ProgramData\npm-cache"
  • C:\ProgramData\npm添加到您的系统的Path环境variables

如果要将用户的“全局”位置更改为%LOCALAPPDATA%\(npm|npm-cache)path,请执行以下操作:

  • 创build必要的目录
    • C:\Users\YOURNAME\AppData\Local\npm-cache – npm模块将会在这里
    • C:\Users\YOURNAME\AppData\Local\npm – 已安装模块的二进制脚本将在此处显示
    • C:\Users\YOURNAME\AppData\Local\npm\node_modules – 全局安装的模块将会在这里
  • configurationnpm
    • npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
    • npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
  • 将新的npmpath添加到您的环境的PATH
    • setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"

基于chocolatey的安装概念和@Trackerbuild议的想法,对我来说是做了以下工作,所有在Windows上的用户都很高兴与nodejsnpm

selectC:\ProgramData\nodejs作为C:\ProgramData\nodejs安装目录,并使用属于pipe理员组的任何用户来安装nodejs

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

在安装目录的根目录下创build一个名为etc的文件夹,这个文件夹在C:\ProgramData\nodejs\etc

NODE环境variables设置为C:\ProgramData\nodejs

NODE_PATH环境variables设置为C:\ProgramData\nodejs\node_modules

确保以前创build的%NODE%环境variables已添加(或其path)已添加到%PATH%环境variables。

使用以下内容prefix=C:\ProgramData\nodejs编辑%NODE_PATH%\npm\npmrc prefix=C:\ProgramData\nodejs

从命令提示符,像这样设置全局configuration…

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

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

使用从C:\ Users {用户名} \ AppData \ Roaming \ npmC:\ Users {用户名} \ AppData \ Roaming \ npm-cachepath到目的地的Windows符号链接非常适合我。

如何添加符号链接

在这里输入图像说明

在Windows中,如果要将磁盘C中的npm或nodejs文件夹移动到另一个位置,但仍然可以确保节点和npm运行良好,则可以创build符号链接,如下所示:打开命令提示符:

 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文件夹创build了一个符号链接,这个符号链接将引用D:\Nodejs Data\npm一切都会正常工作。

您应该使用此命令来设置npm包的全局安装caching

(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

我尝试了大部分的答案,似乎没有任何工作在我的情况。 所以我把我的envvariables中的Temp位置改为C:\ npm。 然后它开始工作。 这不是一个好主意,而是一个临时解决scheme。