web-dev-qa-db-fra.com

Emplacement d'installation global npm sur Windows?

Je ne suis pas sûr à 100%, mais je pense avoir installé le nœud v5 à partir du programme d'installation Windows sur les ordinateurs de mon domicile et de mon entreprise.

Sur mon PC domestique, les installations globales sont effectuées sous% APPDATA%:

(dev) go|c:\srv> which lessc
c:\users\bjorn\appdata\roaming\npm\lessc
c:\users\bjorn\appdata\roaming\npm\lessc.cmd

sur mon ordinateur de bureau, ils se trouvent dans les fichiers de programme:

(dev) go|w:\srv> which lessc
c:\program files\nodejs\lessc
c:\program files\nodejs\lessc.cmd

Je dois fournir le chemin d'accès complet à un certain nombre de ces outils globaux à l'observateur de fichiers de PyCharm et, étant donné que le fichier de projet que j'ai partagé, il serait logique de ne pas disposer de ressources globales dans un dossier utilisateur.

Pourquoi les installations globales se retrouveraient-elles dans des dossiers différents, et comment puis-je les forcer vers un emplacement commun à tous les membres de l'équipe?

53
thebjorn

Selon: https://docs.npmjs.com/files/folders

  • Installation locale (par défaut): place les éléments dans ./node_modules de la racine actuelle du package.
  • Installation globale (avec -g): place des éléments dans/usr/local ou à l’endroit où le noeud est installé.
  • Installez-le localement si vous allez en avoir besoin.
  • Installez-le globalement si vous allez l'exécuter sur la ligne de commande. -> Si vous avez besoin des deux, installez-le aux deux endroits ou utilisez npm link.

préfixe configuration

Le préfixe config par défaut est l'emplacement où le noeud est installé. Sur la plupart des systèmes, il s'agit de /usr/local. Sous Windows, il s'agit de l'emplacement exact du fichier binaire node.exe .

Les documents sont peut-être un peu dépassés, mais ils expliquent pourquoi les installations globales peuvent se retrouver dans des répertoires différents:

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

Sur la base des autres réponses, il peut sembler que le remplacement est maintenant l'emplacement par défaut de Windows et que j'ai peut-être installé la version de mon bureau avant que ce remplacement ne soit implémenté.

Cela suggère également une solution pour que tous les membres de l’équipe aient des données globales stockées dans le même chemin absolu par rapport à leur PC, c’est-à-dire (exécuté en tant qu’administrateur):

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

ouvrez une nouvelle fenêtre cmd.exe et réinstallez tous les packages globaux.

Explication (par lineno.):

  1. Créez un dossier dans un emplacement approprié pour contenir les éléments globaux (Microsoft insiste sur le fait que vous ne devez pas écrire dans ProgramFiles, de sorte que% PROGRAMDATA% semble être le prochain emplacement logique.
  2. Le répertoire doit être sur le chemin, utilisez donc setx .. /M pour définir le chemin du système (sous HKEY_LOCAL_MACHINE). C'est ce qui nécessite que vous l'exécutiez dans un shell avec des autorisations d'administrateur.
  3. Dites à npm d'utiliser ce nouveau chemin. (Remarque: le dossier n'est pas visible dans% PATH% dans ce shell, vous devez donc ouvrir une nouvelle fenêtre).
44
thebjorn

Ce sont des chemins npm typiques si vous installez un paquet de manière globale:

Windows XP - %USERPROFILE%\Application Data\npm\node_modules
Newer Windows Versions - %AppData%\npm\node_modules
29
Dennis Stücken

Appuyez simplement sur le bouton Windows, tapez% APPDATA% et tapez enter.

Ci-dessus se trouve l’emplacement où vous pouvez trouver le dossier\npm\node_modules. C’est ici que se trouvent les modules globaux de votre système.

12
Subhan Luckiest