389 Stimmen

Wie kann ich ein privates NPM-Modul ohne meine eigene Registrierung installieren?

Ich habe einigen gemeinsam genutzten Code in ein NPM-Modul aufgenommen, das ich nicht in die zentrale Registrierung hochladen möchte. Die Frage ist, wie ich es aus anderen Projekten installieren kann.

Der naheliegendste Weg ist wahrscheinlich, eine eigene NPM-Registrierung einzurichten, aber laut der Dokumentation ist das mit viel Aufwand verbunden.

Kann ich einfach ein NPM-Modul installieren, das sich im lokalen Dateisystem befindet, oder vielleicht sogar aus Git?

npm install --from-git git@server:project

1voto

Krishna Punkte 4228

Die Einrichtung der privaten npm-Registry ist natürlich die skalierbarste und langfristigste Lösung, auch wenn sie am Anfang etwas mühsam ist.

Außerdem können Sie die Installation mit dem git+https/ssh wie in den anderen Antworten erwähnt. Aber wenn Sie das private Repository haben und das Image in der Cloud erstellen, z. B. mit Google Cloud Build, müssen Sie die GitHub-SH-Verbindung einrichten.

Die einfachste Lösung für einen solchen Einzelfall kann mit dem folgenden Ansatz gefunden werden.

  • Klonen und ändern Sie Ihre eigene Bibliothek oder erstellen Sie sie von Grund auf neu.

  • Erzeugen Sie die Archivdatei (Paketcode zusammen mit seinen Abhängigkeiten), indem Sie

    yarn install && yarn pack

    ergibt dies eine Datei wie

    rich-markdown-editor-v11.13.117.tgz

  • verschieben Sie diese Datei nach libs und fügen Sie diesen Eintrag in das Objekt dependencies von package.json .

    "rich-markdown-editor": "file:libs/rich-markdown-editor-v11.13.117.tgz",
  • Installieren Sie nun das Paket.

    yarn install
  • Vergewissern Sie sich, dass Sie diese Datei in Ihrem vcs hinzufügen, und der Installationsprozess bei der Erstellung des Docker-Images sollte auch in der Cloud funktionieren.

Hinweis: Wenn Sie das Paket häufig aktualisieren und in Ihre vcs einbinden, erhöht sich die Größe Ihrer Repository (beim Klonen mit vollständiger Historie).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X