2011-10-17 13:25:58 +0000 2011-10-17 13:25:58 +0000
30
30

Comment installer le 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é Node 0.5.8 et téléchargé les sources de NPM depuis GitHub. Les étapes que j'ai suivies pour installer NPM ont été 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 elle é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 au niveau de mon proxy pour me connecter à Internet. Mais je n'ai pas trouvé le moyen de dire à l'installateur d'utiliser mes identifiants pour la connexion. Y a-t-il une possibilité de fournir l'adresse IP de mon proxy et mes informations de connexion à l'installation de npm, peut-être par le biais d'arguments de ligne de commande ?

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

Réponses (14)

39
39
39
2012-12-03 20:05:07 +0000

set http_proxy a très bien fonctionné pour moi, mais je devais l'entrer à 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 :

  • Allez à 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
  • Ouvrir une invite de commande et essayer d'utiliser npm

D'autres ont eu plus de succès 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 devra peut-être être légèrement modifiée, mais cela m'a permis de ne pas avoir à l'ajouter à chaque fois.

Santé

10
10
10
2011-10-19 17:19:05 +0000

Peut-être que la définition d'une variable d'environnement vous conviendra :

set HTTP_PROXY=http://user:pass@server.url:port

(Dans mon cas, cela résout le problème de la “connexion INCONNUE”, mais j'obtiens une erreur complètement différente de “raccrochage de la prise”. J'ai également essayé de régler la variable d'environnement HTTPS_PROXY, mais j'ai obtenu le même résultat).

8
8
8
2011-11-16 16:41:09 +0000

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

  • Allez à C:\Users\YourUserName
  • Créez un fichier nommé .npmrc
  • Et son entrée se lira :

  • Essayez à nouveau la commande node cli.js install npm -gf.

4
4
4
2012-03-12 09:56:43 +0000

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

  1. Installer un serveur proxy d'autorisation de NTLM ou un autre serveur proxy pour NTLM, comme 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, j'ai dû activer à la fois le mode LM et le mode NT, et je soupçonnerais que c'est 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 :

  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.

3
3
3
2013-09-04 10:46:04 +0000

Tapez ceci dans la ligne de commande :

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

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

N'OUBLIEZ PAS D'INCLURE HTTP:// avant votre nom d'utilisateur. Ça a marché pour moi.

3
3
3
2013-06-13 19:12:07 +0000

Ce qui suit a fonctionné pour moi.

Sur 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
3
3
2016-05-03 20:27:58 +0000

Pour chacune des réponses ci-dessus, l'utilisateur doit écrire 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 son approche peu sûre. J'ai donc essayé d'écrire une application qui injecte le jeton Kerberos de l'utilisateur courant dans les échanges entre le client (npm, bower, git) et le proxy. Cela dit, Active Directory n'est qu'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
2
2
2012-05-02 03:41:48 +0000

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

npm adduser

Exécutez la commande suivante pour voir si vous avez un nom d'utilisateur autorisé :

npm whoami
1
1
1
2015-07-07 21:58:10 +0000

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

Après cela, configurez

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

S'il y a un caractère spécial dans le mot de passe, essayez avec % urlencode. Par exemple : pound(hash) shuold doit être remplacé par %23.

1
1
1
2015-06-18 09:54:36 +0000

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

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

c'est-à-dire, (1) utiliser %5C au lieu de `Au moins dans Windows, cela fonctionne pour moi avec le réglage suivant :

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

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

1
1
1
2013-09-27 06:46:50 +0000

Ces trois choses ont fonctionné pour moi dans .npmrc

proxy = http://unam:pwd@host:port
https-proxy = http://unam:pwd@host:port
registry = http://registry.npmjs.org
```.
0
0
0
2016-02-22 06:19:01 +0000

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

npm config set http_proxy http://username:password@host/IP:port

npm config set proxy http://username:password@host/IP:port

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

nom d'utilisateur : (vide)

mot de passe : (vide)

hôte/IP : 192.36.36.110

port : 8080

donc Mes commandes sont

npm config set http_proxy http://

npm config set proxy http://

0
0
0
2018-01-08 22:13:37 +0000

Ce qui a fonctionné pour moi était le suivant :

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 ou de mot de passe, simplement l'url du fichier PAC.

0
0
0
2016-04-29 05:14:16 +0000

Le CNTLM ne travaillait pas pour moi. J'ai essayé toutes les combinaisons possibles. Le NPM donnait une erreur d'authentification. Un violoniste est venu à mon secours et m'a fait gagner du temps. Il est facile à installer et à configurer. Set Fiddler Rule to Automatically Authenticated.In .npmrc set these

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

It worked for me :)