Lorsque j'essaie d'installer grunt
via npm
, j'obtiens une erreur suivante:
C:\Program Files\nodejs\node_modules\npm>npm install -g grunt
npm ERR! network connect ETIMEDOUT
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "grunt"
npm ERR! cwd C:\Program Files\nodejs\node_modules\npm
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! syscall connect
npm ERR! code ETIMEDOUT
npm ERR! errno ETIMEDOUT
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\Program Files\nodejs\node_modules\npm\npm-debug.log
npm ERR! not ok code 0
J'utilise des configurations de proxy d'entreprise et je pense que cette erreur me pose problème à cause de ses configurations. Que dois-je changer pour pouvoir installer grunt avec succès?
Vous devez configurer le fichier de configuration npm, cela peut être fait dans le terminal:
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
Votre journal des erreurs suggère de voir 'npm help config', je pense donc que le problème vient de là.
Si vous voulez un lien avec plus d'explications, voir cette entrée de blog (il y en a beaucoup plus)
Bonne chance!
Si vous travaillez derrière un proxy dans un domaine "Windows", ajoutez le nom de domaine dans l'URL du proxy:
npm config set proxy http://domain%5Cuser:[email protected]:8080
npm config set https-proxy http://domain%5Cuser:[email protected]:8080
Vous devez coder la barre oblique inversée en tant que chaîne http uri:% 5C
Si votre nom d'utilisateur ou votre mot de passe contient des caractères spéciaux, il est également nécessaire de les encoder. Notez que ces informations critiques sont stockées sous forme de texte brut dans le fichier de configuration npm (% HOME% \. Npmrc) . Il peut également être nécessaire de pointer le registre npm vers la source http:
npm config set registry "http://registry.npmjs.org"
npm config set strict-ssl false
Cette configuration fonctionne pour moi. Vous devez vérifier vos ports http et https (généralement 80 et 443 respectivement), mais dans mon cas, j'utilise le port 80 pour les deux.
npm config set proxy http://user:[email protected]:80
npm config set https-proxy http://user:[email protected]:80
Vous pouvez vérifier vos paramètres de proxy avec la commande get
npm config get proxy
npm config get https-proxy
J'ai eu le même problème avant parce que j'ai joué avec la configuration du proxy par erreur comme ceci:
npm config set proxy http://localhost:8080/
npm config set https-proxy http://localhost:8080/
npm config set strict-ssl false
ce qui fait que le client npm tente de frapper localhost: 8080 pour extraire le module plutôt que le bon point de terminaison Internet.
donc après quelques jours de frustration j'ai visité ce lien
https://docs.npmjs.com/cli/config
puis courir
npm config edit
qui a ouvert un fichier. à l'intérieur de ce fichier, j'ai supprimé ces trois lignes que j'ai ajoutées ci-dessus, puis tout a bien fonctionné.
lancer >> npm config edit
après avoir ouvert le fichier de configuration dans l'éditeur, supprimez les lignes suivantes
registry = http://registry.npmjs.org/
https-proxy = http: // hôte /: port
strict-ssl = false
veuillez utiliser npm config set proxy http://xx.aa.bb.cc:port cela a fonctionné pour moi merci beaucoup!
La troisième chose à faire pour que NPM fonctionne bien dans le réseau proxy.
Cet ensemble de registre npm, par défaut, il peut prendre https.
npm config set registry " http://registry.npmjs.org/ "
Deuxièmement, deux proxy définis dans votre système. Si votre organisation utilise un proxy ou vous-même.
npm config set proxy " http: // nom d'utilisateur: mot de passe @ proxy-url: proxy-port "
npm config set https-proxy " http: // nom d'utilisateur: mot de passe @ proxy-url: proxy-port "
vous pouvez l'exécuter en cmd
npm config set <key> <value> [-g|--global]
npm config get <key>
npm config delete <key>
npm config list
npm config edit
npm get <key>
npm set <key> <value> [-g|--global]
npmrc.txt va s'exécuter, vous pouvez changer votre lien et votre port
proxy =http://proxy.company.com:8080
https-proxy = http://proxy.company.com:8080
Les options ci-dessous ont fonctionné pour moi:
npm config set registry " http://registry.npmjs.org "
npm config set proxy http: // utilisateur: [email protected]: proxy-port
npm config set strict-ssl false
npm installer -g -d yo