Bower-Anrufe werden vom Corporate Proxy blockiert

77

Ich versuche, Bower für eine Web-App zu verwenden, habe jedoch Probleme mit dem Proxy:

D:\>bower search jquery
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 1.2s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 2.5s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 6.8s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 15.1s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 20.3s
bower ECONNRESET    Request to https://bower.herokuapp.com/packages/search/jquery failed: tunneling socket could not be established, cause=Parse Error

Relevante Punkte:

  • Ich kann zu https://bower.herokuapp.com/packages/search/jquery navigieren und es wird eine vollständige JSON-Antwort zurückgegeben.
  • Ich kann git zum Klonen verwenden, sowohl mit dem git: // -Protokoll als auch mit http (s).
  • Ich kann NPM direkt ohne diese Probleme verwenden
  • Ich habe versucht, mit Fiddler festzustellen, was blockiert wird, aber es werden keine Anrufe vom Bower-Befehl erkannt. Ich kann Anrufe von NPM-Befehlen in Fiddler sehen.
  • Ich habe die Bower-Problemliste durchsucht und ähnliche Probleme gesehen, aber sie haben entweder keine Lösung oder sie scheinen nicht ganz so zu sein wie meine.

Irgendwelche Ideen?

LJW
quelle

Antworten:

164

Danke @ user3259967

Das hat den Job gemacht.

Ich möchte hinzufügen, dass Sie, wenn Sie sich hinter einem Proxy befinden, der authentifiziert werden muss, den Benutzernamen / das Kennwort zu Ihrer .bowerrc- Datei hinzufügen können .

{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

HINWEIS Die Verwendung von http: // im https-Proxy

Sohail
quelle
1
Ich konnte die .bowerrc-Datei finden. Ist es bereits vorhanden oder sollten wir die Lösung hinzufügen?
AnandhaSundari M
Sie müssen es manuell erstellen und dann die obigen Zeilen hinzufügen. Stellen Sie sicher, dass Sie die JSON-Standards ordnungsgemäß befolgen.
Sohail
@Sohail Das letzte "," verursacht einen Fehler. Könnten Sie es entfernen?
Edubriguenti
12
HINWEIS Die Verwendung von http: // in https-proxy <<<< Dies ist eine äußerst wertvolle Information. es hat den Trick für mich
getan
Benutzername und Passwort, was ist das?
Hossein Ganjyar
37

Die Lösung für mich ist diese Konfiguration .bowerrc

{
  "directory": "vendor",
  "registry": "http://bower.herokuapp.com",
  "proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "https-proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "strict-ssl": false
}

Verwenden des http-Protokolls in https-proxy plus Registrierungseintrag mit http-Protokoll.

Denken Sie daran, die 8080-Portnummer in den Proxyserver-Port Ihres Proxyservers zu ändern.

Ademir Mazer Jr. - Nuno
quelle
19

Stehst du hinter einem Proxy?

Haben Sie die Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY eingerichtet?

SET HTTP_PROXY=http://yourproxyserver:yourproxyport
SET HTTPS_PROXY=http://yourproxyserver:yourproxyport
JamesClevenger
quelle
Vielen Dank. Mein Problem war, dass ich https in meiner HTTPS_PROXY-Einstellung hatte.
Brian F
@ JamesClevenger - Diese Lösung funktionierte überhaupt nicht, als ich sie ausprobierte, bekam immer noch die gleichen Fehler.
DCP
Das Festlegen der Umgebungsvariablen hat funktioniert. Bower konnte durch Bearbeiten der .bowerrc-Datei etwas mehr Fortschritte erzielen, konnte jedoch nichts herunterladen.
Daniel N
12

Versuchen Sie, den Registrierungswert in Ihrer .bowerrc zu ändern:

{
    "registry": "http://bower.herokuapp.com"
}
user3259967
quelle
2
Ich erhalte den Fehler über die Website nicht gefunden ... Bower Info-Broschüre ENOTFOUND Anfrage an bower.herokuapp.com/packages/leaflet fehlgeschlagen: getaddrinfo ENOTFOUND
Dr.YSG
Das war genug für mich
Sabsab
9

Ich hatte keine .bowerrc-Datei, um meine Bower-Einstellungen zu konfigurieren. Ich habe die Einstellungen in einer Datei namens defaults.js gefunden . gefunden unter "C: \ ... \ bower \ node_modules \ bower-config \ lib \ util \ defaults.js "
Ich hoffe, dies hilft anderen:

var defaults = {
    'cwd': process.cwd(),
    'directory': 'bower_components',
    'registry': 'http://bower.herokuapp.com',
    'shorthand-resolver': 'git://github.com/{{owner}}/{{package}}.git',
    'tmp': paths.tmp,
    'proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'https-proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'timeout': 30000,
    'ca': { search: [] },
    'strict-ssl': false,
    'user-agent': userAgent,
    'color': true,
    'interactive': null,
    'storage': {
        packages: path.join(paths.cache, 'packages'),
        links: path.join(paths.data, 'links'),
        completion: path.join(paths.data, 'completion'),
        registry: path.join(paths.cache, 'registry'),
        empty: path.join(paths.data, 'empty')  // Empty dir, used in GIT_TEMPLATE_DIR among others
    }
};

module.exports = defaults;

sqlexception
quelle
3
Sie könnten gerade die Datei .bowerrc
Mukus
7

Sie können versuchen, @thebignet in demselben Problem auf GitHub vorzuschlagen

Set proxy, https-proxyund strict-sslKonfiguration in .bowerrcDatei:

{
  "proxy"       : "http://<host>:<port>",
  "https-proxy" : "http://<host>:<port>",
  "strict-ssl"  : false
} 

Aber Sie müssen Befehl vom Terminal ausgeführt:

git config --global url."https://".insteadOf git://
ahmed hamdy
quelle
2
+1 das hat bei mir funktioniert. Musste nicht authentifizieren. Einfach über meine Proxy-Einstellungen von npm kopiert. Wenn Sie herausfinden müssen, was sie verwenden, npm get proxyund npm get https-proxywenn Sie noch keine .bowerrc-Datei haben, erstellen Sie einfach eine
fidev
Ja, Ihre Lösung mit npmmöglich, aber meine Lösung mit .bowerrcDatei, um die proxyEinstellung nur in Ihrem aktuellen Projekt zu ändern
Ahmed Hamdy
5
"strict-ssl": false

in .bowerrc hat für mich getan

Nuwan Dammika
quelle
4

Für Win 7 .

Was für mich funktioniert hat, sind die folgenden Schritte, wie unter diesem Link vorgeschlagen - lesen Sie die Antwort von #nanowizard.

  1. .bowerrcEntfernen Sie in der Datei alle Einstellungen für http_proxy / https_proxy, die Sie möglicherweise zuvor vorgenommen haben. Das ist wichtig. Der endgültige Inhalt dieser Datei sollte also folgendermaßen aussehen:

    {
      "directory": "app/bower_components" 
    }
    
  2. Legen Sie Umgebungsvariablen in Ihrem PC http_proxyund https_proxyauf Ihrem Unternehmens-Firewall-Proxy fest. Falls Ihr Unternehmens-Proxy eine Authentifizierung erfordert und wenn Ihr Kennwort Sonderzeichen enthält, konvertieren Sie es in die Hex-Form, wie von diesem Link vorgeschlagen. Wie in meinem Fall hat es nicht geholfen, Zeichen mit '\' zu entkommen. Außerdem musste ich mein System neu starten.

Hinweis: http_proxy und https_proxy sollten dieselbe Proxy-Adresse wie unten gezeigt enthalten

http_proxy = http://<user>:<password>@<your company proxy>:<port>
https_proxy= http://<user>:<password>@<your company proxy>:<port>  ->Note no 's' in http://...
Fiberair
quelle
1
Upvote für den Hinweis zu Sonderzeichen in Passwörtern. Das hat es für mich geregelt.
Nick
@ Nick: Schön, dass es geholfen hat.
Fiberair
1

Ich bin hinter der Unternehmensfirewall und muss auch den Domainnamen angeben. Keine dieser Antworten hat bei mir funktioniert. Folgendes habe ich getan:

  1. Heruntergeladenes CNTLM von http://cntlm.sourceforge.net/
  2. Offensichtlich installiert.
  3. Öffnen Sie cntml.ini und ändern Sie Folgendes

    Domain your_domain_name

    Benutzername your_domain_username

    Passwort your_domain_passowrd

    PassLM 1AD35398BE6565DDB5C4EF70C0593492 (Kommentar auskommentieren)

    PassNT 77B9081511704EE852F94227CF48A793 (auch dies auskommentieren)

    Proxy http: // localhost: 8888

  4. Gehen Sie zu services.msc und starten Sie den CNTLM-Authentifizierungsdienst.

  5. Laden Sie Fiddler 4/2 herunter (wie auch immer sie es nennen).
  6. Installieren Sie dies auch. Dies wird in http: // localhost: 8888 ausgeführt
  7. Welches Programm auch immer Sie jetzt ausführen (Proxy), es wird an http: // locahost: 3128 weitergeleitet (genau das wird von CNTLM ausgeführt.)

In diesem Fall geben Sie http.proxy und https.proxy als http: // localhost: 8888 an

Dies funktioniert für andere Client-Programme. Geben Sie einfach den Proxy als http: // localhost: 8888 an

Mukus
quelle
Dies war der einzige Weg, der für mich funktionieren würde. Am ehesten konnte ich es ohne lokalen Proxy zum Laufen bringen, indem ich die neuesten Node-Tools global installierte. Mit den Proxy-Einstellungen funktionierten dann die globalen NPM-Befehle (z. B. zum Installieren von Bower). Es wurde jedoch nichts behoben, was über NPM in VS lief. Die neuen Node-Tools wurden offensichtlich behoben, aber die MS-Versionen oder Bower bleiben zurück. Vielen Dank, aber sagen Sie den Leuten vielleicht nicht, dass sie Klartextkennwörter in eine Quelldatei einfügen sollen. Konfigurieren Sie den Benutzer, die Domäne und den Proxy und führen Sie den Befehl CNTLM -M aus, um den sicheren Wert zu generieren, der das Kennwort ersetzt.
Tony Wall
1
Außerdem brauchen Sie weder Fiddler noch eine andere Komplexität. Bearbeiten Sie einfach die lokale .bowerrc-Datei des Projekts und fügen Sie den Proxy und den https-Proxy hinzu, die beide auf " localhost: 3128 " zeigen, dh auf den CNTLM-Dienst. Gleiches gilt für GIT und NPM, obwohl ich, wie gesagt, nach dem globalen Upgrade keine Probleme hatte, mich dynamisch bei meinem Firmen-Proxy mit einem zwischengespeicherten Kennwort (über die Visual Studio-Anmeldung) zu authentifizieren. NPM und GIT haben natürlich ihre eigenen Proxy- und https-Proxy-Einstellungen ähnlich wie bowerrc, falls jemand diese in den globalen Pfaden / Benutzer / Projekt bearbeiten möchte.
Tony Wall
1

seine Arbeit für mich in der .bowerrc-Datei zu ändern

{
 "Verzeichnis": "client / lib", 
 "Registrierung": "http://bower.herokuapp.com",
 "Proxy": "http://192.168.1.205:3228",
 "https-proxy": "http://192.168.1.205:3228"
}}
  • Dabei ist client / lib das Installationsverzeichnis. Wo möchten Sie installieren?
  • und http://192.168.1.205:3228 ist Ihre Proxy-IP mit Port. Corporate Proxy kann je nach Organisation unterschiedlich sein.
Pankaj
quelle
1

Zusätzlich zum Einstellen des folgenden Proxys in .bowerrc:

{
  "directory": "app/bower_components",
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "http-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "strict-ssl": false,
  "registry": "http://bower.herokuapp.com"
}

Ich muss die folgenden Befehle ausführen, um das Problem zu beheben:

npm cache clean
bower cache clean
bower install
Arpit Aggarwal
quelle
1

Die in den anderen Antworten verwendete Registrierung ist jetzt veraltet. Bitte aktualisieren Sie es!

{
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "registry": "https://registry.bower.io"
}
Melchia
quelle
0
{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

Dieser Code hat bei mir funktioniert. Ich benutze Win 7 und Chrome und auch Git Bash. Hier müssen einige Dinge geklärt werden. Ich brauche viel Zeit, um die tatsächlichen Daten zu Benutzername, Passwort, Proxy-IP und Port zu finden. Ich werde es Schritt für Schritt beschreiben, damit jeder Lernende die Botschaft leicht verstehen kann:

  1. Erstellen Sie eine Datei im Editor mit dem Namen .bowerrc im Anmeldeordner. Sie können dorthin gehen, indem Sie Start> Ausführen>% UserProfile% eingeben und OK drücken.
  2. Geben Sie den obigen Code mit den folgenden Änderungen in die .bowerrc-Datei ein:

    Ersetzen Sie <USERNAME> durch Ihre Internetverbindung Benutzer-ID oder Login-ID

    Ersetzen Sie <PASSWORD>durch Ihr Internetverbindungskennwort oder Login-Passwort.
    Ersetzen Sie <PROXY_IP>und <PROXY_PORT>durch die funktionierende Proxy-IP-Adresse und deren Portnummer.

       **Note: There should be no angle brackets.**
    
  3. Die Proxy-IP sollte sich von Ihrer eigenen IP unterscheiden.

  4. Bevor Sie eine Proxy-IP und einen Proxy-Port verwenden, sollten Sie überprüfen, ob diese funktionieren, indem Sie Ihre Proxy-IP und Ihren Proxy-Port ändern.

  5. Über diesen Link können Sie die Details der Proxy-Einstellungen unter Beschreibung hier erfahren

  6. Über diese Proxy-Einstellungen erhalten Sie Proxy-IP und -Port.
  7. Überprüfen Sie alle Eingaben erneut, damit alle korrekt sind, speichern Sie die Datei und schließen Sie sie.
  8. Öffnen Sie git bash und ändern Sie das Verzeichnis in die Projektdatei. Geben Sie den Befehl ein und drücken Sie die Eingabetaste, in meinem Fall den Befehl git bash:

a @ a-PC MINGW32 / d / conFusion

$ bower installieren

  1. Es funktionierte wie Magie.
ohid
quelle
0

Falls es jemandem hilft, hatte ich den Fehler "Laube durch Gruppenrichtlinie blockiert".

Die Lösung bestand darin, eine Ausnahme in CryptoPrevent zu machen, einer Anwendung, die auf unseren Unternehmenscomputern installiert wurde, um Krypto-Schließfächer zu verhindern.

AlecPerkey
quelle
0

Zur Information können Sie in Ihrer .bowerrc-Datei ein No-Proxy-Attribut hinzufügen. Ich weiß nicht, wann es unterstützt wird, aber es funktioniert unter Bower 1.7.4 und löst das Problem der Bower hinter einem Unternehmens-Proxy mit einem internen Repository

.bowerrc:

{
  "directory": "bower_components", 
  "proxy": "http://yourProxy:yourPort",
  "https-proxy":"http://yourProxy:yourPort",
  "no-proxy":"myserver.mydomain.com"
}

Grüße

Loicmathieu
quelle
0

Bitte stellen Sie sicher, dass Ihr Proxy-Passwort keine Sonderzeichen enthält. Konvertiere es in hex. Für mich geht das.

user7067902
quelle