2017-04-12 4 views
0

Für ein Unternehmen, Projekt, ich möchte eine private npm Registrierung mit Artifactory oder Nexus einzurichten, können so Pakete mit allen geteilt werden, um sie auf https://registry.npmjs.org/Wie sollte ich eine private npm-Registrierung einrichten?

In Maven ohne Veröffentlichung würde ich Release und einen Snapshot einrichten Repo. Zur Lösung würde ich sie in eine Gruppe neben einem Proxy von maven central setzen.

Wie sieht ein Setup für npm aus? npm's semver ist in der Lage, Release und Prerelease zu unterscheiden, aber ich gehe davon aus, dass das Routing zu verschiedenen Registrys eine ziemlich schwierige Aufgabe sein kann.

Auf der anderen Seite möchte man in der Lage sein, die Kontrolle darüber zu haben, was in die "Veröffentlichungsregistrierung" verschoben wird, indem Berechtigungen entsprechend implementiert werden. Dazu müssten Sie eine "Prerelease" - und eine "Release" -Registrierung verwenden.

Antwort

0

Im Hinblick darauf, wie dies in Nexus Repository tun, wenn Sie wirklich brauchen, würde ich die Einrichtung empfehlen:

npm-release (npm hosted) npm-prerelease (npm hosted) npm-all (npm group)

die Gruppe beide Elemente umfassen Stellen (so können Sie eine URL installieren), und dann in Ihrem Build-Skript oder was auch immer Sie verwenden, um in Nexus Repository zu veröffentlichen, verwenden Sie einfach --registry Flag um anzugeben, in welchem ​​Repository Sie veröffentlichen möchten, ähnlich wie bei einem "release":

npm publish --registry http://localhost:8081/repository/npm-release/

Und dies für eine "Pre-Release":

npm publish --registry http://localhost:8081/repository/npm-prerelease/

Hier sind die NPM-Dokumentation für Nexus Repository 3.x, wenn Sie etwas mehr Hilfe benötigen: https://books.sonatype.com/nexus-book/reference3/npm.html

1

Wenn ich Sie richtig verstanden habe, hätten Sie gerne die Möglichkeit, ein "release" und "snapshot" Repository für NPM zu haben, wie Sie es jetzt für Maven haben. Wenn dies in der Tat der Fall ist, dann können Sie in Artifactory 2 Repositories einrichten, einen für die "Vorabversion" und einen weiteren für die "Freigabe", und beide unter einem virtuellen NPM-Repository aggregieren. Wie Sie bereits erwähnt haben, können Sie für jedes Repository einen anderen Satz von Berechtigungen haben und somit steuern, wer Abhängigkeiten bereitstellen/auflösen kann und außerdem Artefakte voneinander verschieben kann.

Hoffe, dass Ihre Frage beantwortet.

+0

Hallo Ariel, vielen Dank für die Beantwortung. Meine Frage war, ob das ein gängiger Weg/Best Practice bei der Arbeit mit privaten npm-Registries wäre. Oder würden Sie einen anderen Ansatz vorschlagen? – Bebef

+0

Persönlich denke ich, dass Sie ein Repo verwenden könnten, es ist nicht so, dass npmjs.org zwei separate Repos für die Vorabfreigabe und Freigabe hat. Das Beispiel, das ich gab, war meistens nur, wenn du es wirklich so machen willst (aus Sicherheitsgründen), hier ist es. – DarthHater

Verwandte Themen