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

时间:2013-11-09 09:49:30

标签: node.js npm

在我的Windows安装中,PATH包含C:\Program Files\nodejs,其中可执行文件node.exe。我可以从shell启动node,以及npm。我希望在C:\Program Files\nodejs中安装新的可执行文件,但似乎无法实现。

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

如何更改全局安装路径?

14 个答案:

答案 0 :(得分:71)

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

但是这个改变可能会有一些副作用,所以请先阅读this discussion。我认为你的想法并不好。

答案 1 :(得分:59)

尝试将全球软件包安装到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"

参考

环境
在Windows 7旗舰版N 64位SP1上将nodejs x86安装程序导入C:\Program Files (x86)\nodejs\ node --version:v0.10.28
npm --version:1.4.10

答案 2 :(得分:55)

您可以在我的answer to another question中看到我对此的回答。


在Windows中,全局安装路径实际上位于用户的个人资料目录中

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

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

  • 创建一个[NODE_INSTALL_PATH]\etc\目录
    • 在您尝试npm config --global ...操作
    • 之前需要这样做
  • 为npm模块创建全局(admin)位置
    • 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"

答案 3 :(得分:18)

基于chocolatey的安装概念和@Tracker建议的想法,对我有用的是做以下操作,然后Windows上的所有用户都很高兴使用nodejs和{{1 }}

选择npm作为C:\ProgramData\nodejs的安装目录,并与任何属于管理员组成员的用户安装nodejs

在安装目录的根目录下创建一个名为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

在命令提示符下,设置全局配置,如此...

prefix=C:\ProgramData\nodejs

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

重要的是,上述步骤最好按顺序进行,然后再更新npm(npm config --global set cache "C:\ProgramData\nodejs\npm-cache")或尝试安装任何npm -g install npm@latest模块。

执行上述步骤有助于我们在系统范围内安装npm,并且具有适当权限的所有用户都可以轻松使用。然后,每个用户都可以根据需要运行nodejsnode

答案 4 :(得分:13)

您应该使用此命令设置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

答案 5 :(得分:4)

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

答案 6 :(得分:4)

  • 步骤1 npm config get prefix

    • 默认路径为:%USERPROFILE%\AppData\Roaming\npm
  • 第2步npm config get cache

    • 默认路径为:%USERPROFILE%\AppData\Roaming\npm-cache
  • 第3步npm config set prefix <Your New Location>\npm

    • 示例npm config set prefix C:\\dev\\node\\npm
  • 步骤4 npm config set cache <Your New Location>\npm-cache

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

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

    就这样。每当您安装全局软件包时,您都应该看到它们已安装在\ npm \ node_modules

答案 7 :(得分:3)

使用 C:\ Users {username} \ AppData \ Roaming \ npm C:\ Users {username} \ AppData \ Roaming \ npm-cache <中的Windows符号链接/ em>到目的地的路径对我来说很有用。

How to add a symbolic link

enter image description here

答案 8 :(得分:1)

在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\npm一切都会正常工作。

答案 9 :(得分:0)

我在这里尝试了大部分答案似乎在我的案例中似乎没有用。所以我将env变量中的Temp位置更改为C:\ npm。然后它开始工作。这不是一个好主意,而是一个临时解决方案。

答案 10 :(得分:0)

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

删除.npmrc文件

答案 11 :(得分:0)

不需要太多配置,只需转到高级系统设置,复制您安装节点的路径,然后创建一个环境变量,并在提示中使用node -v命令进行检查即可!

答案 12 :(得分:0)

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

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

npm列表-g --depth = 0

它将返回您当前正在安装节点模块的当前路径。 范例:D:\ vsc \ typescript

现在访问以下路径以查看npm和npm-cache文件夹。 C:\ Users \用户名(OR号)\ AppData \ Roaming

在C驱动器的Roaming文件夹中,您将找到npm和npm-cache文件夹。 点击+ npm +文件夹,然后选择路径[只需单击条形路径将被自动选择并复制]。This is a path image which you need to select

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

最后一步: 转到CMD,然后右键单击以下命令:

npm设置前缀C:\ Users \ username(Number)\ AppData \ Roaming \ npm \ node_modules

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

所有设置。...立即尝试...它将起作用。

答案 13 :(得分:0)

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

npm列表-g --depth = 0

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

npm设置前缀C:\ Users \ username(Number)\ AppData \ Roaming \ npm \ node_modules

对我有用。阅读我以前的答案以更好地理解。