Lisez à propos d'une variable proxy dans un fichier .npmrc
mais cela ne fonctionne pas. Essayer d'éviter de télécharger manuellement tous les paquets et l'installation requis.
J'ai résolu ce problème de cette façon:
Je lance cette commande:
npm config set strict-ssl false
Ensuite, configurez npm pour qu'il s'exécute avec http au lieu de https:
npm config set registry "http://registry.npmjs.org/"
Ensuite, j'installe les paquets en utilisant cette syntaxe:
npm --proxy http://username:[email protected]:80 install packagename
Ignore la partie username:password
si le proxy ne vous oblige pas à vous authentifier
EDIT: Un de mes amis vient de signaler que vous pouvez forcer NPM à travailler derrière un proxy en définissant DEUX HTTP_PROXY et les variables d’environnement HTTPS_PROXY, puis en émettant normalement la commande npm install express (par exemple)
EDIT2: Comme @BStruthers a commenté, gardez à l'esprit que les mots de passe contenant "@" ne seront pas analysés correctement, si contient @, mettez le mot de passe entier entre guillemets
Configuration npm
proxy
Pour HTTP
:
npm config set proxy http://proxy_Host:port
Pour HTTPS
:
utilisez l'adresse proxy https s'il en existe une
npm config set https-proxy https://proxy.company.com:8080
sinon réutiliser l'adresse proxy http
npm config set https-proxy http://proxy.company.com:8080
Note: Le proxy https n'a pas le protocole https
, mais http
.
En cas de doute, essayez toutes ces commandes, comme je le fais:
npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:[email protected]:8080
npm config set https-proxy http://myusername:[email protected]:8080
npm config set strict-ssl false
set HTTPS_PROXY=http://myusername:[email protected]:8080
set HTTP_PROXY=http://myusername:[email protected]:8080
export HTTPS_PROXY=http://myusername:[email protected]:8080
export HTTP_PROXY=http://myusername:[email protected]:8080
export http_proxy=http://myusername:[email protected]:8080
npm --proxy http://myusername:[email protected]:8080 \
--without-ssl --insecure -g install
=======
Mettez vos paramètres dans ~/.bashrc
ou ~/.bash_profile
afin que vous n'ayez pas à vous soucier de vos paramètres à chaque fois que vous ouvrez une nouvelle fenêtre de terminal!
Si votre entreprise est comme la mienne, je dois changer mon mot de passe assez souvent. J'ai donc ajouté ce qui suit dans mon ~/.bashrc ou ~/.bash_profile afin que, chaque fois que j'ouvre un terminal, je sache que mon npm est à jour!
Collez simplement le code suivant au bas de votre fichier ~/.bashrc
:
######################
# User Variables (Edit These!)
######################
username="myusername"
password="mypassword"
proxy="mycompany:8080"
######################
# Environement Variables
# (npm does use these variables, and they are vital to lots of applications)
######################
export HTTPS_PROXY="http://$username:$password@$proxy"
export HTTP_PROXY="http://$username:$password@$proxy"
export http_proxy="http://$username:$password@$proxy"
export https_proxy="http://$username:$password@$proxy"
export all_proxy="http://$username:$password@$proxy"
export ftp_proxy="http://$username:$password@$proxy"
export dns_proxy="http://$username:$password@$proxy"
export rsync_proxy="http://$username:$password@$proxy"
export no_proxy="127.0.0.10/8, localhost, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16"
######################
# npm Settings
######################
npm config set registry http://registry.npmjs.org/
npm config set proxy "http://$username:$password@$proxy"
npm config set https-proxy "http://$username:$password@$proxy"
npm config set strict-ssl false
echo "registry=http://registry.npmjs.org/" > ~/.npmrc
echo "proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "strict-ssl=false" >> ~/.npmrc
echo "http-proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "http_proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "https_proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "https-proxy=http://$username:$password@$proxy" >> ~/.npmrc
######################
# WGET SETTINGS
# (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
######################
echo "https_proxy = http://$username:$password@$proxy/" > ~/.wgetrc
echo "http_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
echo "ftp_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
echo "use_proxy = on" >> ~/.wgetrc
######################
# CURL SETTINGS
# (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
######################
echo "proxy=http://$username:$password@$proxy" > ~/.curlrc
Ensuite, éditez les champs "nom d'utilisateur", "mot de passe" et "proxy" dans le code que vous avez collé.
Ouvrir un nouveau terminal
Vérifiez vos paramètres en exécutant npm config list
et cat ~/.npmrc
Essayez d’installer votre module en utilisant
npm install __
, ounpm --without-ssl --insecure install __
, ounpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
Avez-vous essayé les options de ligne de commande au lieu du fichier .npmrc
?
Je pense que quelque chose comme npm --proxy http://proxy-server:8080/ install {package-name}
a fonctionné pour moi.
J'ai aussi vu ce qui suit: npm config set proxy http://proxy-server:8080/
Bien qu'il existe déjà de nombreux bons conseils, pour mon environnement (Windows 7, avec PowerShell) et la dernière version disponible de node.js (v8.1.2), tout ce qui précède n'a pas fonctionné, sauf lorsque j'ai suivi brunowego = paramètres.
Alors vérifiez vos paramètres avec:
npm config list
Paramètres derrière un proxy:
npm config set registry http://registry.npmjs.org/
npm config set http-proxy http://username:password@ip:port
npm config set https-proxy http://username:password@ip:port
npm config set proxy http://username:password@ip:port
npm set strict-ssl false
J'espère que cela fera gagner du temps à quelqu'un
Pour configurer le proxy http, activez le drapeau - g:
Sudo npm config set proxy http://proxy_Host:port -g
Pour le proxy https, assurez-vous que le drapeau - g est bien défini:
Sudo npm config set https-proxy http://proxy_Host:port -g
Cela fonctionne pour moi dans Windows:
npm config set proxy http://domain%5Cuser:pass@Host:port
Si vous n'êtes dans aucun domaine, utilisez:
npm config set proxy http://user:pass@Host:port
Si votre mot de passe contient des caractères spéciaux tels que "
, @
, :
et ainsi de suite, remplacez-les par leurs valeurs encodées en URL. Par exemple, "
-> %22
, @
-> %40
, :
-> %3A
. %5C
est utilisé pour le caractère \
.
$ npm config set proxy http://login:pass@Host:port
$ npm config set https-proxy http://login:pass@Host:port
Cela a fonctionné pour moi
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false
vim ~/.npmrc
sur votre machine Linux et ajoutez ce qui suit. N'oubliez pas d'ajouter registry
une partie, car cela peut provoquer des erreurs.
proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
Bien que j'ai mis proxy avec config, le problème n'a pas été résolu mais après celui-ci a fonctionné pour moi:
npm --https-proxy http://XX.AA.AA.BB:808 installez cordova-plugins
npm --proxy http://XX.AA.AA.BB:808 installer
Après avoir finalement lié différentes réponses, les quatre premières lignes de @Kayvar answers m'aident à résoudre le problème:
npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:[email protected]:8080
npm config set https-proxy http://myusername:[email protected]:8080
npm config set strict-ssl false
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
Cela a résolu mon problème.
J'ai essayé toutes ces options, mais mon mandataire n'en avait aucune pour une raison quelconque. Puis, né de désespoir/désespoir, j’ai essayé au hasard curl
dans mon shell Git Bash, et cela a fonctionné.
Désactiver toutes les options de proxy en utilisant
npm config rm proxy
npm config rm https-proxy
Et puis exécuter npm install
dans mon shell Git Bash a parfaitement fonctionné. Je ne sais pas comment il est correctement configuré pour le proxy et l'invite Windows cmd
ne l'est pas, mais cela a fonctionné.
Enfin, j'ai réussi à résoudre ce problème en étant derrière le proxy avec l'authentification AD. Je devais exécuter:
npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/
Il est très important d'encoder les caractères spéciaux tels que le backshlash ou # dans mon adresse URL.
backshlash
avec% 5C pour que domain\user will
soit domain%5Cuser
#
signe avec %23%0A
afin qu'un mot de passe comme Password#2
soit Password%23%0A2
J'ai également ajouté les paramètres suivants:
npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
Pour moi, même si python etc fonctionnera, même si notre proxy d'entreprise ne fonctionne pas.
J'ai essayé
npm config set proxy http://proxyccc.xxx.ca:8080 npm config set https-proxy https://proxyccc.xxx.ca:8080 npm config set registry http://registry.npmjs.org/
comme indiqué mais continuait à recevoir la même erreur.
Ce n’est que lorsque je suppriméhttps-proxy https://proxyccc.xxx.ca:8080
du fichier .npmrc que npm install electron --save-dev a fonctionné
Essayez de trouver .npmrc dans C:\Users\.npmrc
puis ouvrez (bloc-notes), écrivez et enregistrez à l'intérieur:
proxy=http://<username>:<pass>@<proxyhost>:<port>
PS: supprimer "<" et ">" s'il vous plaît !!
Cela a fonctionné pour moi. Définissez les proxy http et https.
Il y a de bonnes informations sur la page de curl sur problèmes de SSL et de certificat . Je base la majeure partie de ma réponse sur les informations fournies.
L'utilisation de strict-ssl false est une mauvaise pratique et peut créer des problèmes. Ce que nous pouvons faire à la place, c’est d’ajouter le certificat en cours d’injection, par le certificat "homme au milieu".
Comment résoudre ceci sous Windows:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
npm config set cafile **C:\Users\username\cacert.pem
npm config set strict-ssl true
Phew! On l'a fait! Maintenant, npm peut comprendre comment se connecter. Le bonus est que vous pouvez dire à curl d'utiliser le même fichier cabundle.pem et il comprendra également les HTTP.
Utilisez la commande ci-dessous à cmd ou GIT Bash ou autre invite
proxy de configuration $ npm " http://192.168.1.101:4128 "
$ npm config set https-proxy " http://192.168.1.101:4128 "
où 192.168.1.101 est le proxy ip et 4128 le port. changer en fonction de vos paramètres de proxy. ça marche pour moi.
De nombreuses applications (par exemple, npm) peuvent utiliser un paramètre de proxy à partir de variables d’environnement utilisateur.
Vous pouvez simplement ajouter à votre environnement les variables suivantes HTTP_PROXY et HTTPS_PROXY qui avoir la même valeur pour chacun
http: // utilisateur: mot de passe @ proxyAddress: proxyPort
Par exemple, si vous avez Windows, vous pouvez ajouter un proxy comme suit:
Dans mon cas, j'ai oublié de définir le "http: //" dans mes adresses de proxy (se trouve dans C:\Users\[USERNAME]\.npmrc). Donc au lieu d'avoir
proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]
J'avais
proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]
Ce qui bien sûr n'a pas fonctionné, mais les messages d'erreur n'ont pas beaucoup aidé non plus ...
Voici les étapes que j'ai suivies (Windows):
C:\Users\<WIN_USERNAME>\.npmrc
Exportez le certificat dans votre système de fichiers à l’adresse suivante: https://registry.npmjs.org
Accédez à l'emplacement du certificat exporté et exécutez la commande suivante:
npm config set cafile npm_certificate.cer
Ajoutez les modifications suivantes au fichier: registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer
Maintenant, vous devriez être prêt à partir!
Il y a eu beaucoup de réponses ci-dessus pour cette question, mais aucune d'entre elles n'a fonctionné pour moi. Tous ont mentionné l’ajout du préfixe http://
. Alors je l'ai ajouté aussi. Tout a échoué.
Il fonctionne enfin après que j’ai retiré accidentellement le préfixe http://
. La configuration finale est comme ceci:
npm config set registry http://registry.npmjs.org/
npm config set http-proxy ip:port
npm config set https-proxy ip:port
npm config set proxy ip:port
npm set strict-ssl false
Je ne connais pas la logique derrière tout ça, mais ça a fonctionné. Si aucune des réponses ci-dessus ne vous convient, vous pouvez peut-être essayer de cette façon. J'espère que celui-ci est utile.
Sur le système Windows
Essayez de supprimer les paramètres de proxy et de registre (s'ils sont déjà définis) et définissez les variables d'environnement en ligne de commande via
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
puis essayez d’exécuter npm install. Par ceci, vous ne définissez pas le proxy dans .npmrc mais cela fonctionnera pour cette session.
Mon problème est tombé sur une erreur stupide de ma part. Comme j'avais rapidement déposé mes proxies dans un fichier Windows * .bat (http_proxy, https_proxy et ftp_proxy), j'ai oublié d'échapper aux caractères spéciaux du domaine à code utilisateur \% (% 5C) et au mot de passe comportant le point d'interrogation. '?' (% 3F). C'est-à-dire qu'une fois que vous avez la commande encodée, n'oubliez pas d'échapper au '%' dans la commande bat file.
J'ai changé
set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080
à
set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080
Peut-être que c'est une affaire Edge, mais j'espère que cela aidera quelqu'un.
quand je donne sans préfixe http/http dans les paramètres de proxy, npm a échoué, même lorsque l'hôte et le port du proxy étaient des valeurs correctes. Cela n'a fonctionné qu'après avoir ajouté le préfixe de protocole.
Ouvrez simplement le nouveau terminal et tapez npm config edit
et npm config -g edit
. Réinitialiser les paramètres par défaut. Après ce terminal fermé, ouvrez le nouveau et tapez npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
si vous avez besoin d’ajouter globalement, ajoutez simplement -g
.
Cela a fonctionné pour moi, espérons que cela fonctionnera pour vous :)