web-dev-qa-db-fra.com

Comment installer NPM derrière un proxy d'authentification sous Windows?

Je dois exécuter la dernière version de Node et NPM sous Windows. J'ai installé le nœud 0.5.8 et téléchargé les sources de NPM à partir de GitHub. Les étapes que j'ai suivies pour installer NPM étaient répertoriées sur son site GitHub mais j'ai un problème pour exécuter la commande suivante:

node cli.js install npm -gf

mais cela échoue avec le message d'erreur suivant:

Error: connect UNKNOWN
at errnoException (net_uv.js:566:11)
at Object.afterConnect [as oncomplete] (net_uv.js:557:18)

System Windows_NT 5.1.2600
command "...\\Node\\bin\\node.exe" "...\\npm\\cli.js" "install" "npm" "-gf"
cwd ...\npm
node -v v0.5.8
npm -v 1.0.94
code UNKNOWN

Je pense que c'est un problème car j'ai besoin d'une authentification auprès de mon proxy pour me connecter à Internet. Mais je n'ai trouvé aucun moyen de dire à l'installateur d'utiliser mes informations d'identification pour la connexion. Est-il possible de fournir mon adresse IP proxy et mes informations de connexion à l’installation de npm via des arguments de ligne de commande?

Je peux fournir le journal complet (mais ne semble pas disposer d'informations plus pertinentes) en utilisant Pastebin si nécessaire.

30
Tobias

set http_proxy fonctionnait très bien pour moi, mais je devais le saisir chaque fois que j'ouvrais l'invite de commande. J'ai donc dû combiner plusieurs réponses et maintenant la mienne est permanente.

Ma séquence s'est déroulée comme suit:

  • Aller au C:\Users\YourUserName
  • Créez un fichier nommé .npmrc
  • Dans ce fichier, tapez ce qui suit (si vous êtes sur un domaine AD):

proxy = http://domain\\username:password@ip:port

  • Ou utilisez ceci si vous n'êtes PAS sur un domaine AD:

proxy = http://username:password@ip:port

  • Enregistrer le fichier
  • Ouvrez une invite de commande et essayez d'utiliser npm

D'autres ont eu un succès supplémentaire avec la commande supplémentaire suivante:

strict-ssl = false

* Vous devriez pouvoir utiliser une adresse IP ou l'URL du proxy à la place de "IP" ci-dessus.

Votre chaîne de proxy doit peut-être être légèrement modifiée, mais cela a permis d'éviter de l'ajouter à chaque fois.

À votre santé

39
Eric Steinborn

Peut-être que définir une variable d'environnement fonctionnera pour vous:

set HTTP_PROXY=http://user:[email protected]:port

(Dans mon cas, cela résout le "connect UNKNOWN", mais j'obtiens une erreur "prise de ligne" complètement différente. J'ai également essayé de définir la variable d'environnement HTTPS_PROXY, mais j'ai obtenu le même résultat.)

10
nafisto

J'ai eu ce problème identique et voici ce que j'ai fait pour que cela fonctionne:

  • Aller à: C:\Users\YourUserName
  • Créez un fichier nommé .npmrc
  • Et son entrée se lit comme suit:

    registry = http://registry.npmjs.org
    
  • Essayez à nouveau la commande node cli.js install npm -gf.

8
sam

Après quelques recherches, je pourrais l'utiliser de cette manière:

  1. Installez NTLM Authorization Proxy Server ou un autre serveur proxy pour NTLM, tel que Cntlm. Personnellement, je préfère le serveur python, car je peux le bricoler, et les performances ne sont pas un problème.

  2. Mettre en place la configuration; Notez que dans mon cas, je devais activer les modes LM et NT, et je soupçonnerais que ce soit le cas normal, de nos jours.

  3. Définissez les variables d’environnement http_proxy et https_proxy pour qu'elles pointent vers votre proxy local:

    set http_proxy = "localhost: 5865"
    set https_proxy = "localhost: 5865"

  4. npm devrait fonctionner maintenant, bien sûr, il devrait être exécuté depuis un shell où les variables d'environnement ci-dessus sont définies.

4
rob

Tapez ceci en ligne de commande:

npm set proxy http://user:pass@ip:port

npm set https-proxy http://user:pass@ip:port

NE PAS OUBLIER D'INCLURE HTTP: // avant votre nom d'utilisateur. Cela a fonctionné pour moi.

3
Super Luvdub

Ce qui suit a fonctionné pour moi.

Sous Windows 7:

npm config set proxy xxhttp://username:password@proxyhost:port# 

Cela devrait créer un fichier nommé .npmrc dans le dossier C:/users/<username>.

3
Chummar

Chacune des réponses ci-dessus nécessite que l'utilisateur écrive son mot de passe dans un fichier texte ou dans une variable d'environnement.

Personnellement, je n’ai pas aimé une solution comme celle-ci, pour leur approche peu sûre. J'ai donc essayé d'écrire une application qui injecte le jeton Kerberos de l'utilisateur actuel dans les échanges entre le client (npm, bower, git) et le proxy. Cela dit, Active Directory est simplement une implémentation propriétaire de Kerberos.

J'utilise ce logiciel tous les jours, sur un hôte Windows 8.1. Vous pouvez trouver le code (golang) et les binaires de la première version sur https://github.com/nilleb/authentication-proxy .

2
nilleb

Ce problème a été résolu pour moi après avoir créé le fichier .npmrc comme ci-dessus, puis exécuté la commande adduser et les invites suivantes de cmd.

npm adduser

Exécutez le comman suivant pour voir si vous avez un nom d'utilisateur autorisé:

npm whoami
2
John

Vous obtiendrez l'hôte et le port proxy auprès de votre administrateur de serveur ou de l'assistance.

Après cela mis en place

npm config set http_proxy http://username:[email protected]:itsport
npm config set proxy http://username:[email protected]:itsport

Si le mot de passe contient des caractères spéciaux, essayez avec% urlencode. Par exemple: - la livre (hachage) doit être remplacée par% 23.

1
Shamseer

Au moins dans Windows, cela fonctionne pour moi avec le réglage suivant:

proxy = http: //domaine% 5Cusername:mot de passe@adresse IP:port

c'est-à-dire (1) utilisez %5C au lieu de \ (comme suggéré ailleurs) et (2) utilisez l'adresse IP au lieu du nom de l'ordinateur local pour le serveur proxy.

1
Ganesh

Les trois choses ont fonctionné pour moi en .npmrc

proxy = http://unam:pwd@Host:port
https-proxy = http://unam:pwd@Host:port
registry = http://registry.npmjs.org
1
catrapture

CNTLM n'a pas fonctionné pour moi. J'ai essayé toutes les combinaisons possibles. NPM donnait une erreur d'authentification. Le violoneux est venu au secours et m'a fait gagner du temps. Il est facile à installer et à configurer. Définissez la règle Fiddler sur Authentifié automatiquement. Dans .npmrc, définissez ces paramètres.

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

Cela a fonctionné pour moi :)

0
user588459

Ce qui a fonctionné pour moi a été comme suit:

registry=http://registry.npmjs.org
proxy=http://<url.pac>
https-proxy=http://<url.pac>
http-proxy=http://<url.pac>
strict-ssl=false

Je n'ai pas eu à entrer de nom d'utilisateur ni de mot de passe, mais simplement l'URL du fichier PAC.

0
Kunal Nanda

La solution qui a fonctionné pour moi est la suivante:

npm config set http_proxy http: // nom d'utilisateur _: mot de passe @ hôte/IP: port

proxy de configuration npm http: // nom d'utilisateur: mot de passe @ hôte/IP: port

remplace les paramètres par les valeurs, dans mon cas

nom d'utilisateur : (vide)

mot de passe : (vide)

Host/IP : 192.36.36.110

port : 8080

alors mes commandes sont

npm config set http_proxy http: //: @ 192.36.36.110: 8080

npm config set proxy http: //: @ 192.36.36.110: 8080

0
srujan maddula