web-dev-qa-db-fra.com

config globale de nodejs npm manquante sur windows

Je ne trouve pas du tout où npm a ses paramètres globaux stockés.

npm config get userconfig

C:\Users\Jack\.npmrc

config npm obtenir globalconfig

C:\Users\Jack\AppData\Roaming\npm\etc\npmrc

Il n'y a aucun fichier sur l'un de ces chemins et pourtant

npm config get proxy -> renvoie mon URL de proxy pour le travail. que je veux supprimer.

npm config -g supprimer le proxy

npm ERR! Error: ENOENT, unlink 'C:\Users\Jack\AppData\Roaming\npm\etc\npmrc'

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "config" "-g" "delete" "proxy"
npm ERR! cwd C:\f\Dropbox\apps
npm ERR! node -v v0.8.22
npm ERR! npm -v 1.2.14
npm ERR! path C:\Users\Jack\AppData\Roaming\npm\etc\npmrc
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\f\Dropbox\apps\npm-debug.log
npm ERR! not ok code 0
36
Jack

Il semble que les fichiers que npm utilise pour modifier ses fichiers de configuration ne soient pas créés lors d'une nouvelle installation, car npm a une option par défaut pour chacun. C'est pourquoi vous pouvez toujours obtenir des options avec npm config get <option>: avoir ces fichiers ne remplace que les valeurs par défaut, il ne crée pas les options à partir de zéro.

Je n'avais jamais touché mon npm config des trucs avant aujourd'hui, même si je l'avais depuis des mois maintenant. Aucun fichier n'était encore là, comme ~/.npmrc (sur une machine Windows 8.1 avec Git Bash), mais je pouvais exécuter npm config get <something> et, si c'était une option npm correcte, elle renvoyait une valeur. Quand j'ai couru npm config set <option> <value>, le fichier ~/.npmrc semblait être créé automatiquement, avec l'option et sa valeur comme seule ligne non commentée.

Quant à la suppression des options, il semble que cela redonne juste la valeur à la valeur par défaut, ou ne fait rien si cette option n'a jamais été définie ou n'a pas été définie et n'a jamais été réinitialisée. De plus, si cette option est la seule option explicitement définie, elle ressemble à ~/.npmrc est également supprimé et recréé si vous set autre chose plus tard.

Dans votre cas (en supposant qu'il soit toujours le même un an plus tard), il semble que vous n'ayez jamais défini l'option proxy dans npm. Par conséquent, comme le dit la page d'aide de npmconfig, elle est définie sur ce que votre http_proxy (variable insensible à la casse) est. Cela signifie qu'il n'y a rien à delete, à moins que vous ne vouliez "supprimer" votre proxy HTTP, bien que vous puissiez set l'option ou la variable d'environnement à autre chose et espérer qu'aucune ne casse votre configuration d'une manière ou d'une autre .

21
trysis

Il y a un problème avec la mise à niveau de npm sous Windows. L'installation initiale effectuée dans le cadre de l'installation de nodejs à l'aide d'un package msi créera un fichier npmrc:

C:\Program Files\nodejs\node_modules\npm\npmmrc

lorsque vous mettez à jour npm en utilisant:

npm install -g npm@latest

il installera la nouvelle version dans:

C:\Users\Jack\AppData\Roaming\npm

en supposant que votre nom est Jack, qui est% APPDATA%\npm.

La nouvelle installation n'inclut pas de fichier npmrc et sans lui, le répertoire racine global sera basé sur l'endroit où le noeud a été exécuté, c'est donc C:\Program Files\nodejs\node_modules

Vous pouvez le vérifier en exécutant:

npm root -g

Cela ne fonctionnera pas car npm n'a pas la permission d'écrire dans le "Program Files" répertoire. Vous devez copier le fichier npmrc de l'installation d'origine dans la nouvelle installation. Par défaut, le fichier n'a que la ligne ci-dessous:

prefix=${APPDATA}\npm

Ceci est couvert ici: https://github.com/npm/npm/wiki/Troubleshooting

27
oenpelli

Pour moi (sous Windows 10), le fichier npmrc était situé dans:

%USERPROFILE%\.npmrc

Testé avec:

  • npm v4.2.0
  • Node.js v7.8.0
21
Benny Neugebauer

Avez-vous essayé d'exécuter npm config list? Et, si vous voulez voir les valeurs par défaut, exécutez npm config ls -l.

6
user1990218

Comment le comprendre

Commencer avec npm root - il vous montrera le dossier racine des packages NPM pour l'utilisateur actuel. Ajouter -g et vous obtenez un dossier global. N'oubliez pas de soustraire node_modules.

Utilisation npm config/npm config -g et vérifiez que cela vous créera un nouveau .npmrc/npmrc pour vous.

Testé sur Windows 10 Pro, NPM v.6.4.1:

Configuration globale du NPM

C:\Users\%username%\AppData\Roaming\npm\etc\npmrc

Configuration NPM par utilisateur

C:\Users\%username%\.npmrc

Configuration NPM intégrée

C:\Program Files\nodejs\node_modules\npm\npmrc

Les références:

3
Vladimir Salin

N'est-ce pas le chemin que vous recherchez?

C:\Program Files\nodejs\node_modules\npm\npmmrc

Je sais que npm produit cela, mais le dossier global est le dossier où node.js est installé et tous les modules le sont.

1
Avner Solomon