Lorsque j'utilise un référentiel npm privé, j'ai besoin de pouvoir envoyer certaines demandes via un serveur proxy et d'autres directement au serveur.
Habituellement, la définition des variables d'environnement HTTP_PROXY, HTTPS_PROXY et NO_PROXY résout ce problème.
Je comprends que npm n'a pas d'option de ligne de commande pour no_proxy, mais je n'ai pas réussi à faire en sorte que npm respecte la variable d'environnement NO_PROXY: après avoir défini les variables d'environnement ci-dessus, l'installation de npm expire lors du téléchargement de bibliothèques externes (qui nécessitent de être téléchargé via le proxy d'entreprise)
Mon fichier ~/.npmrc présente les éléments suivants:
registre = http: // [internal_npm_registry]
email = [email]
J'utilise la version 3.10.10 de npm. Quelqu'un a-t-il eu le même besoin et l'a-t-il résolu?
J'ai eu le même problème au travail: nous avons un référentiel privé Nexus npm où nous hébergeons des modules personnalisés et nous avions besoin de npm pour ne pas utiliser le proxy lors de la demande de ces packages.
La seule solution fiable que j'ai trouvée pour Windows a été de définir les variables d'environnement que vous avez répertoriées et de supprimer toutes les valeurs proxy de npm (set proxy
, https-proxy
et https_proxy
tout à null
dans votre .npmrc
fichier).
Ainsi, par exemple, le .npmrc
le fichier à la racine du projet ressemble à ceci:
strict-ssl=false
ca=null
registry=http://my-nexus-repo.com/repository/npm-packages/
my-custom-registry-on-nexus:registry=http://my-nexus-repo.com/repository/hosted-npm-packages/
https_proxy=null
https-proxy=null
proxy=null
En suivant l'exemple ci-dessus, votre no_proxy
la variable d'environnement ressemblerait à ceci:
my-nexus-repo.com,localhost
Cela nous a permis d'installer de façon transparente tous les packages npm (même les plus délicats comme node-sass
qui télécharge des tarballs en dehors de npm).
Avec npm 5.3.0 / node 8.4.0
, les NO_PROXY
la variable d'environnement fonctionne comme un charme!