2016-08-03 2 views
0

Meine Firma verfügt über private Bereiche npm Module, d. H. Diejenigen, die mit @mycompanyscope/mymodule beginnen. Durch die Standardeinstellungen alle scoped Module in npm sind privat, so dass Sie zuerst, bevorSo installieren Sie ein npm-Scoped-Modul auf Microsoft Azure-Websites

npm login 
Username:myusername 
Password:********** 
npm publish 

Das scoped Modul veröffentlichen anmelden müssen die Eigenschaft haben, name mit einem Umfang in der package.json:

{ 
    "name": "@mycompanyscope/mymodule" 
} 

und der private Schlüssel muss entfernt werden.

Sobald Sie sich einloggen Sie eine token in der .npmrc Datei erhalten in Ihrem $HOME Ordner, das ist wie

//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000 
scope=mycompanyscope 

An diesem Punkt alles richtig eingerichtet in dieser Maschine zu publish und install ist. Wenn Sie anderen Benutzern Zugriff gewähren, können sie npm login auf ihren Computern ausführen und von dort aus ein Token abrufen.

Die Probleme kommen auf der Serverseite, abhängig von Ihrem Server. Auf Heroku sollte es funktionieren wie erklärt here.

Meine Serverumgebung ist Azure-Websites. Laut einigen Dokumenten sollten Sie Ihre .npmrc-Datei während der Bereitstellungsphase zu Azure hochladen, und das wäre großartig, wenn ich eine Möglichkeit hätte, ein Token für diesen Rechner zu erhalten. Wenn ich versuche zu Kudu PowerShell einzuloggen, die Tatsache ist, dass ich einfach nicht anmelden, hängt der Login-Prozess an einem gewissen Punkt:

Kudu Remote Execution Console 
Type 'exit' then hit 'enter' to get a new powershell process. 
Type 'cls' to clear the console 

PS D:\home> npm login 
Username: mycompany 
Password: ********* 
Email: (this IS public) [email protected] 

, so dass ich keine Token aus dieser Maschine erzeugen kann. Wie kann ich hier Zugriff gewähren, damit die npm install für private Scoped-Module ordnungsgemäß ausgeführt wird?

[UPDATE] Dank der Antwort unten ich die npm scoped Modul einsetzen konnte (@ mycompanyscope/MyModule) zu Azure Web Site, die .npmrc Datei im Stammordner des Projektes zu schaffen (wo die package.json ist) und dann gibt das Token nach dem npm login erhalten schreiben, und das Hinzufügen der registry zum npmjs.org Registrierung:

//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000 
scope=mycompanyscope 
@mycompanyscope:registry=https://registry.npmjs.org/ 

Antwort

1

Haben Sie versucht, Ihre privaten npm Registrierung auf dem lokalen Rechner npm login zu erzeugen, eine .npmrc fil e in Ihrer node.js-Anwendung, dann stellen Sie sie mit Ihrer Anwendung in Azure Web App bereit.

Weitere Informationen finden Sie unter https://blog.maartenballiauw.be/post/2015/10/13/working-with-a-private-npm-registry-in-azure-web-apps.html.

Jedes Update oder weitere Anliegen, zögern Sie nicht mich zu informieren.

+0

Danke für den Vorschlag. Die Lösung, die Sie erwähnen, benutzt 'myget', um die' npm private Registry' zu hosten, so dass Sie diese Ihrer '.npmrc' Datei hinzufügen können, wie' npm install --save --registry https://www.myget.org/ F/demo-site/npm/'aber ich benutze' npmjs.com' private Module, und ich finde kein Beispiel für das Hinzufügen einer Registrierung zu meinem '.npmrc'. – loretoparisi

+1

Es ist dasselbe, wenn Sie den Befehl 'npm login' ausführen, ist die Standard-Registrierungs-URL' registry.npmjs.org'. Und entsprechend der Beschreibung unter https: //www.npmjs.com/settings/token, können Sie manuell das '.npmrc' erstellen und das Auth-Token auf dieser Seite festlegen, damit Ihre Azure Web Apps-Umgebung Ihre privaten Module herunterladen kann. –

+0

Ich bestätige, dass dies die Lösung ist. Vielen Dank. Ich habe die Frage aktualisiert. – loretoparisi

Verwandte Themen