Developers mostly like to take control of your machine and how things work on it. This time I decided to take control where NodeJS would restore my global packages and manages package cache.

In this case I am referring to Windows 10 particularly as that is my core development platform.

By default NodeJS gets installed in C:\Program Files\nodejs folder (assuming you are installing nodejs - Windows x64 version).

After installation lets say I wish to install http-server package so I can run static HTTP server from any folder.

As soon as I do npm install http-server -g, this start adding package and it's dependency packages into C:\Users\username\AppData\Roaming\npm and C:\Users\username\AppData\Roaming\npm-cache folder.

So I wish to shift these two folders to different and custom location e.g: D:\nodejs. Let's do it!

Step: Edit NPMRC file at follow location: C:\Program Files\nodejs\node_modules\npm\npmrc
This should be containing one like for path / prefix:

prefix=${APP_DATA}\npm  

Change it to new location:

prefix=D:\nodejs\npm  

Step: Edit user's NPMRC file at following location: C:\Users\usernamee\.npmrc Replace following path fragment for all cases: C:\Users\username\AppData\Roaming with D:\nodejs

Following steps will change the default path for npm folder.

Step: Run the following command at command prompt to change the default path for npm-cache

npm config set cache D:\nodejs\npm-cache --global  

Step: Change the path for npm set at user environment variable level. Open Environment variable edit dialog: Right click on Windows icon > System > Advanced system settings > Environment Variables > Top section "User variables for username.

Select Path variable and click Edit
Here edit npm default location to custom path as D:\nodejs\npm

That's it, next time when you run npm install anything -g it would restore those packages and setup npm cache at your custom location.

Happy coding!