2017-10-13 3 views
0

Im package.json meines Node.js Projekt, das ich ein paar Abhängigkeiten haben, ist hier ein Beispiel:npm - Wie stelle ich ein Projekt mit einer Abhängigkeit von unserem internen Bitbucket zu Azure bereit?

... 
"dependencies": { 
    "lodash": "^4.17.4", 
    "request": "^2.81.0", 
    "request-promise-native": "^1.0.4", 
    "my-module": "git+ssh://[email protected]:7999/sub/my-module.git#v5.0.0" 
}, 
... 

my-module ist ein hauseigenes Modul in meiner Firma Bitbucket befindet und nicht der Öffentlichkeit zugänglich gemacht werden können. Unser Bitbucket ist nur über das Intranet erreichbar und nicht über das Internet erreichbar.

Jetzt möchte ich das Projekt von einem lokalen Git Repository zu Azure bereitstellen. Ich folge den Anweisungen von https://docs.microsoft.com/en-us/bot-framework/deploy-bot-local-git und wäre sicherlich erfolgreich, wenn ich nicht die Abhängigkeit von my-module hätte. Wo ich kein Problem habe, npm install von unserem internen Firmennetzwerk auszuführen, scheitert es bei der Bereitstellung an Azure, weil es keinen Zugriff auf unser Bitbucket-Repository gibt.

Ich kann unseren Bitbucket nicht von außen zugänglich machen und ich kann my-module nicht veröffentlichen (z. B. in Github).

Irgendeine Idee, wie ich das intelligent lösen kann?

Edit:
einfach kopieren und einfügen, ist keine Option, weil my-module häufige Änderungen hat, und ich möchte eine neue Version jederzeit schließen können.

Also habe ich das mit Hilfe eines Git Submoduls versucht: Ich habe my-module als Submodul zu meinem Projekt hinzugefügt und bekam seinen Inhalt in den lokalen Ordner lib/my-module, den ich jetzt in package.json verwende. In Azure musste ich die Aktualisierung von Git Submodulen deaktivieren (da my-module 's URL das firmeninterne Repo ist, auf das Azure nicht zugreifen kann) mit . Dann konnte ich mein Projekt erfolgreich in Azure bereitstellen.

Aber: In Azure gibt es jetzt den Ordner lib/my-module, aber es hat keinen Inhalt (auf meinem lokalen Rechner, der Inhalt ist dort). Was müsste ich tun?

Antwort

0

Sie können einen Pfad file:/foo/bar in package.json verwenden und auf einen lokalen Ordner zeigen, in dem Sie das Paket abgelegt haben. Stellen Sie dann Ihre App und diesen lokalen Ordner bereit.

Siehe https://stackoverflow.com/a/38417065/46194

+0

Danke. Ich habe meine Frage mit einigen weiteren Erfahrungen mit Gits-Submodulen konkretisiert - siehe oben. – Markus

+0

@Markus Ich glaube nicht, dass Submodule Ihnen helfen werden, sie bekommen ihre Dateien vom git-Server auf die gleiche Weise wie 'git fetch'. –

+0

Ich habe wahrscheinlich keine andere Möglichkeit, 'my-module' entweder durch Kopieren und Einfügen einzufügen oder' my-module' in einem öffentlich zugänglichen Repository zu veröffentlichen. – Markus

Verwandte Themen