在Windows中更改node.js模块的默认全局安装目录?
在我的Windows安装PATH
包括C:\Program Files\nodejs
,其中可执行node.exe
是。 我能够从shell启动node
,以及npm
。 我想要在C:\Program Files\nodejs
安装新的可执行C:\Program Files\nodejs
,但似乎无法实现。
设置NODE_PATH
和NODE_MODULES
variables不会改变任何东西:默认情况下,仍然会在%appdata%\npm
安装。
我如何更改全局安装path?
你需要的一切是阅读npm-folders
文件 。 我不想现在启动我的Win笔记本,所以我不能validation它,但你应该只改变prefix
到c:\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上的用户都很高兴与nodejs
和npm
。
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
作为系统范围的安装来运行,对所有具有适当权限的用户都很容易。 然后每个用户可以根据需要运行node
和npm
。
默认的全局文件夹是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 \ npm和C:\ 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。