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.
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:
C:\Users\YourUserName
.npmrc
proxy = http://domain\\username:password@ip:port
proxy = http://username:password@ip:port
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é
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.)
J'ai eu ce problème identique et voici ce que j'ai fait pour que cela fonctionne:
C:\Users\YourUserName
.npmrc
Et son entrée se lit comme suit:
registry = http://registry.npmjs.org
Essayez à nouveau la commande node cli.js install npm -gf
.
Après quelques recherches, je pourrais l'utiliser de cette manière:
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.
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.
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"
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.
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.
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>
.
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 .
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
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.
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.
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
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 :)
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.
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