可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
In my windows installation PATH
includes C:\Program Files\nodejs
, where executable node.exe
is. I'm able to launch node
from the shell, as well as npm
. I'd like new executables to be installed in C:\Program Files\nodejs
as well, but it seems impossible to achieve.
Setting NODE_PATH
and NODE_MODULES
variables doesn't change anything: things are still installed in %appdata%\npm
by default.
How can I change the global installation path?
回答1:
Everything you need is to read npm-folders
documentation. I don't want to start my Win notebook now so I cannot verify it, but you should only change prefix
to c:\Program Files\nodejs
in your config file. If you want to change it globally for all users, edit c:\Program Files\nodejs\npmrc
file, otherwise create/edit c:\Users\{username}\.npmrc
.
But this change will have probably some side efects so read this discussion before. I think your idea is not a good one.
回答2:
trying to install global packages into C:\Program Files (x86)\nodejs\
gave me Run as Administrator issues, because npm was trying to install into
C:\Program Files (x86)\nodejs\node_modules\
to resolve this, change global install directory to C:\Users\{username}\AppData\Roaming\npm
:
in C:\Users\{username}\
, create .npmrc
file with contents:
prefix = "C:\\Users\\{username}\\AppData\\Roaming\\npm"
reference
npm install -g package
installs global packages into prefix location
- npmrc userconfig takes priority and overrides
npm config ls -l
was showing prefix = "C:\\Program Files (x86)\\nodejs"
environment
nodejs x86 installer into C:\Program Files (x86)\nodejs\
on Windows 7 Ultimate N 64-bit SP1
node --version
: v0.10.28
npm --version
: 1.4.10
回答3:
You can see my answer to this in my answer to another question.
In Windows, the global install path is actually in your user's profile directory
%USERPROFILE%\AppData\Roaming\npm
%USERPROFILE%\AppData\Roaming\npm-cache
- WARNING: If you're doing timed events or other automation as a different user, make sure you run
npm install
as that user. Some modules/utilities should be installed globally.
- INSTALLER BUGS: You may have to create these directories or add the
...\npm
directory to your users path yourself.
To change the "global" location for all users to a more appropriate shared global location %ALLUSERSPROFILE%\(npm|npm-cache)
(do this as an administrator):
- create an
[NODE_INSTALL_PATH]\etc\
directory
- this is needed before you try
npm config --global ...
actions
- create the global (admin) location(s) for npm modules
C:\ProgramData\npm-cache
- npm modules will go here
C:\ProgramData\npm
- binary scripts for globally installed modules will go here
C:\ProgramData\npm\node_modules
- globally installed modules will go here
- set the permissions appropriately
- administrators: modify
- authenticated users: read/execute
- Set global configuration settings (Administrator Command Prompt)
npm config --global set prefix "C:\ProgramData\npm"
npm config --global set cache "C:\ProgramData\npm-cache"
- Add
C:\ProgramData\npm
to your System's Path environment variable
If you want to change your user's "global" location to %LOCALAPPDATA%\(npm|npm-cache)
path instead:
- Create the necessary directories
C:\Users\YOURNAME\AppData\Local\npm-cache
- npm modules will go here
C:\Users\YOURNAME\AppData\Local\npm
- binary scripts for installed modules will go here
C:\Users\YOURNAME\AppData\Local\npm\node_modules
- globally installed modules will go here
- Configure npm
npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
- Add the new npm path to your environment's
PATH
.
setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"
回答4:
Building on the installation concept of chocolatey
and the idea suggested by @Tracker, what worked for me was to do the following and all users on windows were then happy working with nodejs
and npm
.
Choose C:\ProgramData\nodejs
as installation directory for nodejs
and install nodejs
with any user that is a member of the administrator group.
Create a folder called npm-cache
at the root of the installation directory, which after following above would be C:\ProgramData\nodejs\npm-cache
.
Create a folder called etc
at the root of the installation directory, which after following above would be C:\ProgramData\nodejs\etc
.
Set NODE
environment variable as C:\ProgramData\nodejs
.
Set NODE_PATH
environment variable as C:\ProgramData\nodejs\node_modules
.
Ensure %NODE%
environment variable previously created above is added (or its path) is added to %PATH%
environment variable.
Edit %NODE_PATH%\npm\npmrc
with the following content prefix=C:\ProgramData\nodejs
From command prompt, set the global config like so...
npm config --global set prefix "C:\ProgramData\nodejs"
npm config --global set cache "C:\ProgramData\nodejs\npm-cache"
It is important the steps above are carried out preferably in sequence and before updating npm (npm -g install npm@latest
) or attempting to install any npm
module.
Performing the above steps helped us running nodejs
as system wide installation, easily available to all users with proper permissions. Each user can then run node
and npm
as required.
回答5:
You should use this command to set the global installation flocation of npm packages
(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
You may also consider the npm-cache
location right next to it. (as would be in a normal nodejs installation on windows)
(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
回答6:
The default global folder is C:\Users\{username}\AppData\Roaming\npm
.
You can create (if it doesn't exist) a .npmrc
file in C:\Users\{username}\
and add
prefix = "path\\to\\yourglobalfolder"
.
Note that, in windows, the path should be separated by double back-slash
.
回答7:
Using a Windows symbolic link from the C:\Users{username}\AppData\Roaming\npm and C:\Users{username}\AppData\Roaming\npm-cache paths to the destination worked great for me.
How to add a symbolic link
回答8:
In Windows, if you want to move the npm or nodejs folder in disk C to another location, but it still makes sure node and npm works well, you can create symlink like this:
Open Command Prompt:
mklink /D "your_location_want_to_create_symlink" "location_of_node_npm_file"
Example:
mklink /D "C:\Users\MyUser\AppData\Roaming\npm" "D:\Nodejs Data\npm"
Now you've created a symlink for npm folder, this symlink will refer to D:\Nodejs Data\npm
Everything will work well.
回答9:
I tried most of the answers here nothing seems to work in my case. So i changed the Temp location in my env variables to C:\npm. Then it started to work. This is not a good idea but a temporary solution.
回答10:
Delete node folder completely from program file folder. Uninstall node.js and then reinstall it.
change Path of environment variable PATH. delete .npmrc file from C:\users\yourusername
回答11:
it does not require much configurations just go to advanced system settings copy the path where you have installed your node and just create an environment variable and check with node -v command in your prompt!