Utilisation de npm derrière le proxy d'entreprise .pac

158

J'ai besoin de télécharger plusieurs packages via npm mais notre configuration de proxy d'entreprise est un fichier .pac (je suis sous Windows)

J'ai déjà essayé

npm config set proxy http://mydomain\username:[email protected]:8181/proxy.pac
npm config set https-proxy http://mydomain\username:[email protected]:8181/proxy.pac

ou

npm config set proxy http://1.2.3.4:8181/proxy.pac
npm config set https-proxy http://1.2.3.4:8181/proxy.pac

mais ça ne marche pas ...

toute suggestion? Merci

Doc
la source
8
Je ne pense pas que cette question soit un doublon, les scripts pac peuvent contenir plusieurs adresses proxy en fonction de l'adresse IP / hôte cible, tandis que le dube n'adresse qu'une seule adresse proxy - De l'avis
Ferrybig
1
Pas une seule réponse n'indique comment utiliser les scripts pac qui peuvent contenir plusieurs adresses proxy en fonction de l'adresse IP / hôte cible. Quelqu'un peut-il aider s'il vous plaît.
Partha Sarathi Ghosh
2
Pour moi, cela m'a aidé à ouvrir le proxy.pacfichier afin d'en obtenir l'adresse proxy. (Dans mon cas, je devais simplement changer de port sur 8080).
nomad
@ParthaSarathiGhosh Vous avez raison, aucune des réponses n'expliquait réellement comment utiliser les scripts PAC, j'ai donc ajouté une autre réponse qui traite de ceci: stackoverflow.com/a/61811444 . C'est quelques années de retard, mais mieux vaut tard que jamais?
user1031921

Réponses:

204

J'ai juste eu un problème très similaire, où je ne pouvais pas faire fonctionner npm derrière notre serveur proxy.

Mon nom d'utilisateur est de la forme "domaine \ nom d'utilisateur" - y compris la barre oblique dans la configuration du proxy a entraîné l'apparition d'une barre oblique. Alors entrez ceci:

npm config set proxy "http://domain\username:password@servername:port/"

puis exécuter ceci npm config get proxyrenvoie ceci: http: // domaine / nom d'utilisateur: mot de passe @ nom du serveur: port /

Par conséquent, pour résoudre le problème, j'ai plutôt encodé l'URL de la barre oblique inverse, alors j'ai entré ceci:

npm config set proxy "http://domain%5Cusername:password@servername:port/"

et avec cela, l'accès proxy a été fixé.

Steve Roberts
la source
5
sa cause vous manque la partie% 5C .key étant le C .... voir je l'ai espacé pour vous
sinisterrook
1
Je viens de mettre à jour certaines choses et mon proxy a cessé de fonctionner à nouveau. Il s'est avéré que dans le paramètre "proxy" du fichier .npmrc (comme mentionné ci-dessous par @Ovidiu Buligan), il contenait le% 5C pour la barre oblique inverse, mais le "proxy https" contenait simplement le "\". Le fait de changer cela par% 5C a également résolu le problème. Je suppose que cela pourrait également être mis à jour en exécutant npm config set http_proxy " domain% 5Cusername: password @ servername: port /"
Steve Roberts
1
J'essaye de configurer npm derrière le proxy, mais il existe un moyen de faire un "ping" en utilisant la configuration npm. Parce que si ma conf est erronée, mon utilisateur sera bloqué sur mon domaine d'entreprise.
Ricardo
3
Ce qui a fonctionné pour moi, c'est d' effacer d'abord les sacrées variables environnementales. Utilisez set HTTP_PROXY = et set HTTPS_PROXY =
Sydwell
4
Ajout strict-ssl=falseau .npmrcfichier de configuration résolu pour moi derrière un proxy d'entreprise - voir les réponses de @ ovidiu-buligan et @ karthikeyan-a
Alexander McFarlane
64

Recherchez l'url du pacfichier dans les paramètres LAN d'Internet Explorer et téléchargez le fichier pac à partir de l'URL configurée. Le fichier pac est juste un fichier javascript avec une fonction nommée FindProxyForURLqui renvoie différents hôtes proxy dans différents scénarios.

Essayez de trouver un hôte dans ce fichier pac qui, selon vous, est destiné au trafic Web général et branchez-le à .npmrc dans C:\Users\<username>\.npmrc

proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

Même si vous pouvez vous connecter avec votre domaine et votre nom d'utilisateur sur votre ordinateur d' entreprise, il est fort possible que le nom de domaine de l'annuaire actif de l'utilisateur ne soit pas requis pour le proxy , uniquement le nom d'utilisateur et le mot de passe (qui peuvent être différents de votre connexion Active Directory)

N'oubliez pas de jouer avec les caractères de mot de passe spéciaux qui s'échappent.

Ovidiu Buligan
la source
Merci. J'ai navigué vers .npmrc et change les paramètres. il a fonctionné
arn-arn
54

Téléchargez votre .pacfichier. Ouvrez-le dans n'importe quel éditeur et recherchez PROXY = "PROXY X.X.X.X:80;. Vous pouvez avoir de nombreux proxys, copier l'un d'entre eux et exécuter les commandes de terminal suivantes:

npm config set proxy http://X.X.X.X:80
npm config set https-proxy http://X.X.X.X:80

Vous devriez maintenant pouvoir installer n'importe quel package!

Sumeet_Pol
la source
1
Pour la partie https-proxy, j'ai dû faire "... set https-proxy = http: // ..." au lieu de "... set https-proxy http: // ..." pour qu'il soit travail. Juste mon 0,02 $.
Nick
Merci de définir https-proxy sur http: // est la seule chose qui a fonctionné; après avoir désactivé les variables d'environnement http_proxy et https_proxy de bash!
Alex Punnen
Pour https-proxy, je ne pouvais pas définir sur "définir https-proxy https: /.../", je devais définir sur "définir https-proxy http: // ..." (informations proxy de https -> http)
Mars
il en va de même pour git aussi,git config --global http.proxy http://X.X.X.X:80 git config --global https.proxy http://X.X.X.X:80
Nom de code Jack
38

J'ai résolu ce problème de cette façon:

1) J'exécute cette commande:

npm config set strict-ssl false

2) Ensuite, définissez npm pour qu'il s'exécute avec http, au lieu de https:

npm config set registry "http://registry.npmjs.org/"

3) Ensuite, installez votre package

npm install <package name>

KARTHIKEYAN.A
la source
2
Juste pour souligner que la définition de strict-ssl de npm sur false est un problème de sécurité. Envisagez plutôt de configurer correctement la ca[]propriété sur npm.
Aaron C
26

Pour développer la réponse de @Steve Roberts.

Mon nom d'utilisateur est de la forme "domaine \ nom d'utilisateur" - y compris la barre oblique dans la configuration du proxy a entraîné l'apparition d'une barre oblique. Alors entrez ceci:

npm config set proxy "http://domain\username:password@servername:port/"

J'ai également dû encoder ma domain\userchaîne en URL , cependant, j'ai un espace dans mon nom d'utilisateur, donc j'ai mis un +pour encoder l'encodage de l'URL de l'espace, mais il serait encodé en double comme %2B(qui est l'encodage d'URL pour le signe plus, mais l'URL l'encodage pour un espace est %20), je devais donc à la place faire ce qui suit:

commande npm

// option one 
// it works for some packages
npm config set http_proxy "http://DOMAIN%5Cuser+name:[email protected]:port"
npm config set proxy "http://DOMAIN%5Cuser+name:[email protected]:port"

// option two
// it works best for me
// please notice that I actually used a space 
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://DOMAIN%5Cuser name:[email protected]:port"
npm config set proxy "http://DOMAIN%5Cuser name:[email protected]:port"

// option two (B) as of 2019-06-01
// no DOMAIN
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://user name:[email protected]:port"
npm config set proxy "http://user name:[email protected]:port"

dépannage de la configuration npm

J'ai utilisé le npm config listpour obtenir les valeurs analysées que j'avais définies ci-dessus, et c'est ainsi que j'ai découvert le double encodage. Bizarre.

Essentiellement, vous devez comprendre les exigences suivantes:

  1. Une DOMAINchaîne est-elle requise pour l'authentification
  2. Avez-vous besoin d'encoder des caractères spéciaux?
    • Les espaces et les panneaux (@) sont particulièrement difficiles

Cordialement.

VARIABLES D'ENVIRONNEMENT WINDOWS (invite CMD)

Mettre à jour

Il s'avère que même avec les configurations ci-dessus, j'avais encore des problèmes avec certains packages / scripts qui utilisent Request - Client HTTP simplifié en interne pour télécharger des éléments. Ainsi, comme l'explique le fichier readme ci-dessus, nous pouvons spécifier des variables d'environnement pour définir le proxy sur la ligne de commande, et Request honorera ces valeurs.

Ensuite, après (et je suis réticent à l'admettre) plusieurs essais (plus comme des jours), d'essayer de définir les variables d'environnement, j'ai finalement réussi avec les directives suivantes:

rem notice that the value after the = has no quotations
rem    - I believe that if quotations are placed after it, they become
rem    part of the value, you do not want that
rem notice that there is no space before or after the = sign
rem     - if you leave a space before it, you will be declaring a variable 
rem     name that includes such space, you do not want to do that
rem     - if you leave a space after it, you will be including the space
rem     as part of the value, you do not want that either
rem looks like there is no need to URL encode stuff in there
SET HTTP_PROXY=http://DOMAIN\user name:[email protected]:port
SET HTTPS_PROXY=http://DOMAIN\user name:[email protected]:port

cntlm

J'ai utilisé la technique ci-dessus pendant quelques semaines, jusqu'à ce que je réalise la surcharge de mise à jour de mon mot de passe sur tous les outils qui nécessitaient la configuration du proxy.

Outre npm, j'utilise également:

  • tonnelle
  • vagabond
    • boîte virtuelle (exécutant Linux)
    • apt-get [linux]
  • git
  • vscode
  • supports
  • atome
  • tsd

Étapes de configuration de cntlm

Alors, j'ai installé cntlm . Le réglage cntlmest assez direct, vous recherchez le fichier ini @C:\Program Files\Cntlm\cntlm.ini

  1. Ouvrir C:\Program Files\Cntlm\cntlm.ini(vous aurez peut-être besoin de droits d'administrateur)
  2. chercher Usernameet Domainlignes (ligne 8-9 je pense)
    • ajoutez votre nom d'utilisateur
    • ajoutez votre domaine
  3. À l'invite cmd, exécutez:

    cd C:\Program Files\Cntlm\
    cntlm -M
    cntlm -H  
    • il vous sera demandé le mot de passe:
     cygwin warning:
       MS-DOS style path detected: C:\Program Files\Cntlm\cntlm.ini
       Preferred POSIX equivalent is: /Cntlm/cntlm.ini
       CYGWIN environment variable option "nodosfilewarning" turns off this warning.
       Consult the user's guide for more details about POSIX paths:
         http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
     Password:
  4. La sortie que vous obtenez cntlm -Hressemblera à quelque chose comme:

    PassLM          561DF6AF15D5A5ADG  
    PassNT          A1D651A5F15DFA5AD  
    PassNTLMv2      A1D65F1A65D1ASD51  # Only for user 'user name', domain 'DOMAIN'
    • Il est recommandé d'utiliser PassNTLMv2 afin d'ajouter une #ligne avant PassLMet PassNTou de ne pas les utiliser
  5. Collez la sortie à partir cntlm -Hdu fichier ini en remplaçant les lignes pour PassLM, PassNTet PassNTMLv2, ou commentez les lignes d'origine et ajoutez les vôtres.
  6. Ajoutez vos Proxyserveurs. Si vous ne savez pas ce qu'est le serveur proxy ... Faites ce que j'ai fait, j'ai cherché mon fichier de configuration automatique du proxy en recherchant la AutoConfigURLclé de registre dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings. Accédez à cette URL et parcourez le code qui se trouve être JavaScript.
  7. En option, vous pouvez changer le port sur lequel cntlm écoute en changeant la Listen ####ligne, où ####est le numéro de port.

Configurer NPM avec cntlm

Donc, vous pointez npm vers votre proxy cntml, vous pouvez utiliser l'ip, j'ai utilisé localhostet le port par défaut pour cntlm 3128afin que mon URL de proxy ressemble à ceci

http://localhost:3128

Avec la commande appropriée:

npm config set proxy http: // localhost: 3128

C'est beaucoup plus simple. Vous configurez tous vos outils avec la même URL et vous ne mettez à jour le mot de passe qu'à un seul endroit. La vie n'est pas tellement plus simple.

Doit configurer le certificat de l'autorité de certification npm

À partir de la documentation npm ca

Si votre proxy d'entreprise intercepte les connexions https avec son propre certificat auto-signé, il est indispensable d'éviter npm config set strict-ssl false (gros non-non).

Etapes de base

  1. Obtenez le certificat de votre navigateur (Chromes fonctionne bien). Exportez -le au format X.509 encodé en Base 64 (.CER)
  2. Remplacer les nouvelles lignes par \n
  3. Modifiez votre .npmrcajouter une ligneca[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

Problèmes

J'ai remarqué que parfois npm se bloque, alors j'arrête (parfois avec force) cntlm et le redémarre.

Aaron C
la source
7

J'avais rencontré plusieurs problèmes avec cela et finalement ce que j'ai fait est le suivant:

  1. Fiddler utilisé, avec "Authentification automatique" sélectionné
  2. Dans les règles personnalisées Fiddler, j'ai ajouté

    if (m_AutoAuth) {oSession["X-AutoAuth"] = "domain\\username:password";}
  3. Enfin, dans npm, j'ai défini le proxy sur http: // localhost: 8888

Cela a bien fonctionné.

Shoel Palli
la source
Merci! A travaillé comme un charme !! Mon scénario: le nom d'utilisateur était au format "domaine / nom d'utilisateur". Le mot de passe contenait un "@". Je n'ai pas eu à faire d'encodage / décodage d'URL, etc. du tout
A_B
A parfaitement fonctionné pour moi. Merci beaucoup. Je voulais juste souligner que l'utilisation "domain\\username:password"peut constituer une menace pour la sécurité du vol d'identité. Au lieu de cela, utiliser la "(default)"configuration dans les règles personnalisées fonctionnait à merveille. Fiddler doit être en cours d'exécution pendant que vous utilisez "npm" pour que cela fonctionne.
pk10
7

Pour toute personne ayant des difficultés derrière un pare-feu d'entreprise, ainsi que des problèmes avec SSL (impossible d'obtenir un certificat d'émetteur local), voici quelques étapes que vous pouvez essayer:

Oubliez SSL

Si vous n'êtes pas préoccupé par SSL, vous pouvez suivre les conseils de nombreux contributeurs précédents en définissant vos proxys et en modifiant le registre vers la version non sécurisée:

npm config set proxy http://username:password@proxyname:port
npm config set https-proxy http://username:password@proxyname:port
npm config set registry http://registry.npmjs.org/

Un rapide "gotcha" ici, mes informations d'identification de proxy sont les mêmes pour les demandes sécurisées et non sécurisées (remarquez comment j'ai laissé mon protocole en tant que http: // pour la configuration https-proxy ). Cela peut être la même chose pour vous, et ce n'est peut-être pas le cas.

Je veux garder SSL

Si vous souhaitez conserver SSL et ne souhaitez pas l'utiliser strict-ssl=false, vous avez encore du travail à faire. Pour moi, je suis derrière un pare-feu d'entreprise et nous utilisons des certificats auto-signés, donc je reçois l'erreur unable to get local issuer certificate. Si vous êtes dans le même bateau que moi, vous devrez définir l' cafile=option dans le fichier de configuration npm. Tout d'abord, vous devez créer un fichier PEM contenant des informations sur vos certificats auto-signés. Si vous ne savez pas comment faire cela, voici les instructions pour un environnement Windows sans utiliser de logiciel tiers:

Nous devons indiquer explicitement quels certificats doivent être approuvés car nous utilisons des certificats auto-signés. Pour mon exemple, j'ai accédé à www.google.com à l'aide de Chrome afin de pouvoir récupérer les certificats.

Dans Chrome, accédez à Inspecter -> Sécurité -> Afficher le certificat. Vous verrez tous les certificats qui permettent la connexion SSL. Remarquez comment ces certificats sont auto-signés. La partie floue est mon entreprise et nous ne sommes pas une autorité certifiée. Vous pouvez exporter le chemin d'accès complet du certificat sous forme de fichier P7B, ou vous pouvez exporter les certificats individuellement sous forme de fichiers CER (encodage base64). Exporter le chemin complet en tant que P7B ne vous fait pas beaucoup de bien car vous devrez à votre tour ouvrir ce fichier dans un gestionnaire de certificats et l'exporter en tant que fichiers CER individuels de toute façon. Sous Windows, double-cliquez sur le fichier P7B pour ouvrir l'application Certificate Manager.

entrez la description de l'image ici

L'exportation en tant que CER (Base 64) est en réalité un fichier texte au format suivant:

-----BEGIN CERTIFICATE-----
MIIGqzCCBZOgAwIBAgITIwAAABWhFPjwukYhTAADAAAAFTANBgkqhkiG9w0BAQUF
ADBFMRMwEQYKCZImiZPyLGQBGRYDY29tMRYwFAYKCZImiZPyLGQBGRYGaXJ2aW5n
b0pvCkNmjWzaNNUg2hYET+pP5nP75aRu+kPRl9UnlQ....rest of certificate...
-----END CERTIFICATE-----

Pour créer notre fichier PEM, nous devons simplement empiler ces certificats les uns sur les autres dans un seul fichier et changer l'extension en .pem. J'ai utilisé le bloc-notes pour faire cela.

Vous empilez les certificats dans l'ordre inverse du chemin du certificat. Donc ci-dessus, je commencerais par * .google.com puis je collerais Websense en dessous, puis je délivrerais CA 1 etc. De cette façon, les certificats sont analysés de haut en bas à la recherche de l'autorité de certification racine appropriée. Le simple fait d'inclure l'Autorité de certification racine ne fonctionnera pas, mais nous n'avons pas non plus besoin d'inclure tous les certificats. À partir du chemin ci-dessus, je n'ai besoin d'inclure que les certificats qui précèdent le certificat Websense (émission CA 1, politique CA, racine CA).

Une fois que ces certificats auto-signés sont enregistrés dans un fichier PEM, nous sommes prêts à demander à npm d'utiliser ces certificats comme notre autorité de certification de confiance. Définissez simplement le fichier de configuration et vous devriez être prêt à partir:

npm config set cafile "C:\yourcerts.pem"

Désormais, avec vos proxies définis (http et https) et le registre défini sur https://registry.npmjs.org, vous devriez pouvoir installer des packages derrière un pare-feu d'entreprise avec des certificats auto-signés sans modifier le strict-sslparamètre.

John Galt
la source
6

Vous pouvez vérifier Fiddler si NPM donne une erreur d'authentification. Il est facile à installer et à configurer. Définissez Fiddler Rule sur Automatically Authenticated.Dans .npmrc, définissez ces propriétés

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 :)

Rakesh Sharma
la source
étonnamment, aucune des configurations que j'ai utilisées pour mon proxy ne fonctionnait, j'ai utilisé ceci et j'ai ouvert un violoneux et je pourrais l'utiliser très bien ...
Roberto
5

Essayez ceci, définissez le proxy dans npm comme suit

npm config set proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set https-proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"
Mohammed Safeer
la source
4

Vous obtiendrez l'hôte proxy et le port 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

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

Cela a fonctionné pour moi ...

Shamseer
la source
3

Créez simplement un fichier nommé .npmrc dans un dossier de votre projet, cela évitera la configuration du proxy au niveau du système

#Without password
proxy=http://ipaddress:80
https-proxy=http://ipaddress:80

#With password
proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

Commentez comme ceci si vous n'utilisez pas le proxy

#proxy=http://ipaddress:80
#https-proxy=http://ipaddress:80

#With password
#proxy=http://<username>:<pass>@proxyhost:<port>
#https-proxy=http://<uname>:<pass>@proxyhost:<port>
Vinayak Shedgeri
la source
3

Aucune des réponses existantes n'explique comment utiliser npm avec un fichier PAC. Certains suggèrent de télécharger le fichier PAC, de l'inspecter manuellement et de choisir l'une des chaînes "PROXY ...". Mais cela ne fonctionne pas si le fichier PAC doit choisir parmi plusieurs proxys, ou si le fichier PAC contient une logique complexe pour contourner les proxies pour certaines URL.

En outre, certains proxys d'entreprise nécessitent une authentification NTLM. CNTLM peut gérer l'authentification, mais ne prend pas en charge les fichiers PAC.

Une alternative consiste à utiliser Alpaca , qui exécute le fichier PAC dans une machine virtuelle JavaScript et effectue une authentification NTLM avec le proxy résultant.

utilisateur1031921
la source
2

Si vous êtes derrière un réseau d'entreprise avec proxy, je viens d'utiliser un outil de proxy ntlm et j'ai utilisé le port et le proxy fournis par ntlm, par exemple, j'ai utilisé cette configuration:

strict-ssl=false
proxy=http://localhost:3125

J'espère que ça aide.

yunieski dieguez garcia
la source
2

Utilisez la commande ci-dessous à cmd ou GIT Bash ou à une autre invite

$ npm config set proxy "http://192.168.1.101:4128"

$ npm config set https-proxy "http://192.168.1.101:4128"

où 192.168.1.101 est l'IP proxy et 4128 est le port. changer en fonction de vos paramètres de proxy.

Pankaj
la source
2

Vous devez utiliser "npm config set http-proxy "

utilisation:

npm config set http-proxy http://1.2.3.4:8181
npm config set https-proxy http://1.2.3.4:8181
Júnior Mendonça
la source
1

Au travail, nous utilisons ZScaler comme proxy. La seule façon dont j'ai pu faire fonctionner npm était d'utiliser Cntlm .

Voir cette réponse:

NPM derrière le proxy NTLM

bruceceng
la source
1

Essayez ceci, c'est le seul qui a fonctionné pour moi:

npm --proxy http: //: @proxyhost: --https-proxy http: //: @proxyhost: --strict-ssl false install -g package

Payer une attention à l'option --strict-ssl false

Bonne chance.

Matías Dell'Oso
la source
1

La configuration du proxy NPM mentionnée dans la réponse acceptée résout le problème, mais comme vous pouvez le voir dans ce problème npm , certaines dépendances utilisent GIT et cela rend la configuration du proxy git nécessaire , et peut être effectuée comme suit:

git config --global http.proxy http://username:password@host:port
git config --global https.proxy http://username:password@host:port

La configuration du proxy NPM mentionnée:

npm config set proxy "http://username:password@host:port"
npm config set https-proxy "http://username:password@host:port"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"
Josiel Faleiros
la source
0

J'ai eu un problème similaire et j'ai essayé toutes les solutions de contournement ci-dessus, mais aucune d'entre elles n'a fonctionné pour moi (j'utilisais des caractères spéciaux (comme le symbole «@») dans mon mot de passe et j'avais également besoin d'ajouter un nom de domaine).

En dehors de cela, j'étais un peu inquiet d'ajouter mon mot de passe en texte brut. Il s'est avéré que la solution la plus simple pour surmonter tous ces défis était d'utiliser une sorte de proxy inverse (comme Fiddler).

J'ai déjà détaillé les étapes de configuration dans cette réponse dans SO.

Karthik
la source
0

L'ajout des lignes ci-dessous dans le fichier .typingsrc m'a aidé.

{
    "rejectUnauthorized": false,
    "registryURL" :"http://api.typings.org/"
 }
Tapas Ranjan Singh
la source
0

J'ai rencontré un problème similaire et j'ai découvert que mon fichier de configuration npm (.npmrc) avait une mauvaise entrée de registre. l'a commenté et a relancé l'installation de npm. ça a marché.

Ravi Siva Prasad M
la source
0

Système d'exploitation: Windows 7

Étapes qui ont fonctionné pour moi:

  1. npm config get proxy
  2. npm config get https-proxy

  3. Commentaires: j'ai exécuté cette commande pour connaître mes paramètres de proxy
    npm config rm proxy

  4. npm config rm https-proxy
  5. npm config set registry=http://registry.npmjs.org/
  6. npm install
Suchi Dvg
la source
0

Parce que j'ai encore des problèmes avec la configuration des paramètres de proxy au travail et les désactiver à la maison, j'ai écrit et publié npm-corpo-proxy.sh . Dans chaque corpo, le mot de passe doit être changé souvent et doit contenir des caractères spéciaux, qui doivent être encodés avant d'alimenter npm config (la même chose pour le formulaire de retour domaine \ utilisateur).

Maciek Leks
la source
0

À partir d'une petite recherche sur Google, la première chose que j'ai essayée était la suivante

npm config set registry http://registry.npmjs.org/
npm config set proxy "your proxy"
npm config set https-proxy "your proxy"

Mais npm semblait toujours perdre la connexion en essayant de faire des "installations npm". puis j'ai exécuté cette ligne dans l'invite de commande et maintenant je peux utiliser npm install

set NODE_TLS_REJECT_UNAUTHORIZED=0
Barkin Kaplan
la source
0

Je n'ai pas pu le faire fonctionner avec le CNTLM. J'ai essayé de suivre toutes les informations publiées ci-dessus, mais le proxy n'a toujours pas autorisé la connexion. Avec Fiddler, il vous suffit de l'installer et de cocher l'option Authentifié automatiquement. Mais pour travailler, j'ai dû supprimer le fichier .npmrc de mon dossier utilisateur et définir les variables d'environnement comme indiqué ici , avec ces valeurs:

set npm_config_https-proxy="http://127.0.0.1:8888"

set npm_config_registry="http://registry.npmjs.org/"
Guilherme Pereira
la source