HowTo: NPM hinter einem Proxy verwenden


Der Node Package Manager (NPM) ist ein unverzichtbares Werkzeug bei der Entwicklung mit nodejs. 

Damit dieser auch hinter einem Proxy funktioniert ist dieser entsprechend zu konfigurieren. Freundlicherweise weiß uns npm beim Versuch ein Modul zu installieren bereits darauf hin.

Da NPM (zumindest unter Windows) nicht die systemweite Umgebungsvariable benutzt, muss der Proxy manuell eingetragen werden. Die geschieht am einfachsten mit den Kommandos

$ npm config set proxy http://proxy.domain.tld:port
$ npm config set https-proxy http://proxy.domain.tld:port

Für „proxy.domain“ wird natürlich die URL/IP Deines Proxy eingesetzt. Der Port ebenso. Zu beachten, dass bei dem https-Proxy dies mit Bindestrich geschrieben werden muss und nicht wie sonst üblich mit Unterstrich.

Die Einstellungen werden anschließend in der Datei .npmrc (c:\Users\<benutzer>) gespeichert.

Auch ein Proxy der Authentifizierung erfordert kann verwendet werden. Dafür muss Username sowie Passwort mit übergeben werden

$ npm config set proxy http://user:pass@proxy.domain.tld:port

Sollte der Username oder das Passwort ein @-Zeichen beinhalten, so ist die User/Pass-Kombination noch zusätzlich in Anführungszeichen zu setzen

$ npm config set proxy http://“user:p@asswort“@proxy.domain.tld:port

Für den Fall, dass sich der User in einem AD befindet muss zusätzlich die entsprechende Domain mit angegeben werden

$ npm config set proxy http://domain\\username:pass@proxy.domain.tld:port

Unter Umständen ist es nötig die verwendete Registry (https://registry.npmjs.org) von https auf http umzustellen. Dazu wird in der .npmrc-Datei die folgende Zeile hinzugefügt

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

Oftmals kommt, besonders in Unternehmen, ein automatisches Proxy-Script (*.pac-Datei) zum Einsatz. Diese kann leider nicht verwendet werden. Um den darin festgelegten Proxy-Server ausfindig zu machen die URL zum PAC-File per „wget“ oder im Browser aufrufen. Es handelt sich um ein lesbares Textfile. 

Hinweise:

  • die gemachten Settings finden sich in der Datei .nmprc und können auch dort direkt mit einem Editor bearbeitet werden
  • Auch User/Pass sind dort im Klartext zu lesen, also Zugriff auf die Datei entsprechend beschränken!