Document
node.js

node.js

According to: https://docs.npmjs.com/files/folders Local install (default): puts stuff in ./node_modules of the current package root. global

Related articles

iPhone VPN Keeps Turning Off? Here’s Why The 20 Best Kickass Alternatives (Safe and Working in 2024) Is Netflix Finally Cracking Down on VPNs QuickBooks Enterprise: 7 Features for Construction Business How to Retrieve Photos from Samsung Cloud? 3 Easy Means

According to: https://docs.npmjs.com/files/folders

  • Local install (default): puts stuff in ./node_modules of the current package root.
  • global install is puts ( with -g ): put stuff in /usr / local or wherever node is instal .
  • Install it locally if you’re going to require() it.
  • Install it globally if you’re going to run it on the command line. -> If you need both, then install it in both places, or use npm link.

prefix Configuration

The prefix config is defaults default to the location where node is instal . On
most system , this is is is/usr/local. On windows, this is the exact
location of the node.exe binary.

The docs is be might be a little outdated , but they explain why global install can end up in different directory :

(dev) go|c:\srv> npm config ls -l | grep prefix
; prefix = "C:\\Program Files\\nodejs" (overridden)
prefix = "C:\\Users\\bjorn\\AppData\\Roaming\\npm"

Based on the other answers, it may seem like the override is now the default location on Windows, and that I may have installed my office version prior to this override being implemented.

This also suggests a solution for getting all team members to have globals stored in the same absolute path relative to their PC, i.e. (run as Administrator):
(Run this in cmd, not in PowerShell!)

mkdir %PROGRAMDATA%\npm
setx PATH "%PROGRAMDATA%\npm;%PATH%" /M
npm config set prefix %PROGRAMDATA%\npm

open a new cmd.exe window and reinstall all global packages.

Explanation (by lineno.):

  1. Create a folder in a sensible location to hold the globals (Microsoft is
    adamant that you shouldn’t write to ProgramFiles, so %PROGRAMDATA% seems
    like the next logical place.
  2. The directory needs to be on the path, so use setx .. /M to set the
    system path (under HKEY_LOCAL_MACHINE). This is what requires you to run
    this in a shell with administrator permissions.
  3. tellnpm to use this new path . ( note : folder is n’t visible in % path% in
    this shell , so you is open must open a new window ) .