Lisez à propos d’une variable proxy dans un fichier .npmrc
mais cela ne fonctionne pas. Essayer d’éviter le téléchargement manuel nécessite tous des packages et une installation.
J’ai résolu ce problème de cette façon:
Je lance cette commande:
npm config set ssortingct-ssl false
Ensuite, définissez npm pour exécuter 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:password@cacheaddress.com.br:80 \ install packagename
Ignorer le username:password
si le proxy ne nécessite pas d’authentification
EDIT: Un de mes amis vient de signaler que NPM peut travailler derrière un proxy en définissant les variables d’environnement HTTP_PROXY et HTTPS_PROXY, puis en émettant normalement la commande npm install express (par exemple)
EDIT2: Comme @BStruthers l’a commenté, gardez à l’esprit que les mots de passe contenant “@” ne seront pas analysés correctement
Configuration du proxy npm
Pour HTTP
:
npm config set proxy http://proxy_host:port
Pour HTTPS
:
npm config set https-proxy http://proxy.company.com:8080
Remarque : le proxy https n’a pas https
comme protocole, 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:mypassword@proxy.us.somecompany:8080 npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080 npm config set ssortingct-ssl false set HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 set HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 export HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 export HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080 export http_proxy=http://myusername:mypassword@proxy.us.somecompany:8080 npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 \ --without-ssl --insecure -g install
=======
Mettez vos parameters dans ~/.bashrc
ou ~/.bash_profile
afin de ne pas avoir à vous soucier de vos parameters à 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é les éléments suivants dans mon fichier ~ / .bashrc ou ~ / .bash_profile de sorte que chaque fois que j’ouvre un terminal, je sais que mon npm est à jour!
Il suffit de coller 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 ssortingct-ssl false echo "registry=http://registry.npmjs.org/" > ~/.npmrc echo "proxy=http://$username:$password@$proxy" >> ~/.npmrc echo "ssortingct-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 “username”, “password” et “proxy” dans le code que vous avez collé.
Ouvrir un nouveau terminal
Vérifiez vos parameters en exécutant la npm config list
et cat ~/.npmrc
Essayez d’installer votre module en utilisant
npm install __
, ou npm --without-ssl --insecure install __
, ou npm --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}
fonctionné pour moi.
J’ai également vu ce qui suit: npm config set proxy http://proxy-server:8080/
Bien qu’il y ait déjà beaucoup de bons conseils, pour mon environnement (Windows 7, en utilisant 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 les parameters de brunowego .
Alors vérifiez vos parameters 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 ssortingct-ssl false
J’espère que cela fera gagner du temps à quelqu’un
Pour configurer le proxy HTTP, l’ option -g doit être définie:
sudo npm config set proxy http://proxy_host:port -g
Pour le proxy https, assurez-vous à nouveau que l’ option -g est définie:
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 "
, @
etc., remplacez-les par leurs valeurs codées 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
Bien que je mets 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:8080 installez cordova -plugins
npm –proxy http://XX.AA.AA.BB:8080 installer
J’ai essayé toutes ces options, mais mon proxy n’en avait aucune pour une raison quelconque. Puis, né de désespoir / désespoir, j’ai essayé au hasard de curl
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 configuré correctement pour le proxy et l’invite Windows cmd
n’est pas, mais cela a fonctionné.
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 ssortingct-ssl=false
vim ~/.npmrc
sur votre machine Linux et ajoutez les éléments suivants. N’oubliez pas d’append une partie de registry
car cela entraîne des échecs dans de nombreux cas.
proxy=http://: https-proxy=https://: registry=http://registry.npmjs.org/
Cela a fonctionné pour moi. Définissez le proxy http et https.
Essayez de trouver .npmrc dans C: \ Users \ .npmrc
puis ouvrez (bloc-notes), écrivez et enregistrez à l’intérieur:
proxy=http://:@:
PS: supprimer “<" et ">” s’il vous plaît !!
npm config set proxy : npm config set registry http://registry.npmjs.org/
Cela a résolu mon problème.
Utilisez la commande ci-dessous à cmd ou GIT Bash ou autre invite
$ npm config set proxy ” http://192.168.1.101:4128 ”
$ npm ensemble de configuration https-proxy ” http://192.168.1.101:4128 ”
où 192.168.1.101 est proxy ip et 4128 est port. changer selon vos parameters de proxy. ses œuvres pour moi
Pour moi, même si python etc. fonctionnera bien, notre proxy d’entreprise npm ne le ferait 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 demandé, mais a continué à obtenir la même erreur.
Ce n’est que lorsque j’ai retiré https-proxy https://proxyccc.xxx.ca:8080
du fichier .npmrc que npm install electron –save-dev a fonctionné
Sur le système Windows
Essayez de supprimer les parameters du proxy et du registre (si ceux-ci sont déjà définis) et définissez les variables d’environnement sur la ligne de commande via
SET HTTP_PROXY=http://username:password@domain:port SET HTTPS_PROXY=http://username:password@domain:port
puis essayez de lancer npm install. De cette manière, vous ne définissez pas le proxy dans .npmrc mais pour cette session, cela fonctionnera.
Après avoir finalement attaché différentes réponses, les quatre premières lignes des réponses de @Kayvar m’aident à résoudre le problème:
npm config set registry http://registry.npmjs.org/ npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080 npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080 npm config set ssortingct-ssl false
De nombreuses applications (par exemple, npm) peuvent utiliser les parameters de proxy à partir des variables d’environnement utilisateur.
Vous pouvez simplement append à votre environnement les variables HTTP_PROXY et HTTPS_PROXY qui auront la même valeur pour chacune
http: // utilisateur: mot de passe @ proxyAddress: proxyPort
Par exemple, si vous avez Windows, vous pouvez append un proxy comme suit:
Dans mon cas, j’ai oublié de définir le “http: //” dans mes fichiers de configuration (se trouvent dans les adresses proxy 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 …
Il y a eu beaucoup de réponses ci-dessus pour cette question, mais aucune n’a fonctionné pour moi. Tous mentionnés pour append le préfixe http://
. Alors je l’ai ajouté aussi. Tout a échoué.
Il fonctionne finalement après avoir accidentellement supprimé 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 ssortingct-ssl false
Je ne connais pas la logique derrière cela, mais cela 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.
quand je donne sans préfixe http / http dans les parameters du proxy, npm a échoué même lorsque l’hôte proxy et le port étaient des valeurs correctes. Cela a fonctionné seulement après l’ajout du préfixe de protocole.
Mon problème a été une erreur stupide de ma part. Comme j’avais rapidement abandonné un jour 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 \ user (% 5C) encodé en url et du mot de passe ayant le point d’interrogation. ‘?’ (% 3F). C’est-à-dire, une fois que vous avez la commande encodée, n’oubliez pas d’échapper à la commande ‘%’ dans le fichier bat.
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 un avantage, mais j’espère que cela aide quelqu’un.
Il y a de bonnes informations sur la page de curl sur les problèmes de SSL et de certificates . Je base la plupart de ma réponse sur les informations qui y figurent.
Utiliser ssortingct-ssl false est une mauvaise pratique et peut créer des problèmes. Ce que nous pouvons faire à la place, c’est append le certificate qui est injecté, par le certificate “man in the middle”.
Comment résoudre ce problème 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 ssortingct-ssl true
Phew! Nous l’avons créé! Maintenant, npm peut comprendre comment se connecter. Bonus est que vous pouvez dire à curl d’utiliser le même cabundle.pem et il comprendra également les HTTP.