Synopsis
npm link (im Paketverzeichnis)npm link <pkg>alias: npm ln
Beschreibung
Das Verlinken von Paketen ist ein zweistufiger Prozess.
Erst erstellt npm link
in einem Paketordner einen Symlink im globalen Ordner{prefix}/lib/node_modules/<package>
, der auf das Paket verweist, in dem der Befehl npmlink
ausgeführt wurde. Beachten Sie, dass npm link
das globale Präfix verwendet (siehe npm prefix -g
für seinen Wert).
Nächstens wird npm link package-name
an einem anderen Ort einen symbolischen Link vom global installierten package-name
zu node_modules/
des aktuellen Ordners erstellen.
Beachte, dass package-name
aus package.json
entnommen wird, nicht aus dem Verzeichnisnamen.
Dem Paketnamen kann optional ein Bereich vorangestellt werden. Siehe scope
Dem Scope muss ein @-Zeichen vorangestellt werden, gefolgt von einem Schrägstrich.
Bei der Erstellung von Tarballs für npm publish
werden die verknüpften Pakete durch Auflösen der symbolischen Links auf ihren aktuellen Stand gebracht.
Das ist praktisch, um eigene Sachen zu installieren, so dass man daran arbeiten und sie wiederholend testen kann, ohne sie ständig neu erstellen zu müssen.
Zum Beispiel:
cd ~/projects/node-redis # gehe in das Paketverzeichnisnpm link # erstellt globalen Linkcd ~/projects/node-bloggy # gehe in ein anderes Paketverzeichnis.npm link redis # link-install the package
Jetzt werden alle Änderungen an ~/projects/node-redis in~/projects/node-bloggy/node_modules/node-redis/ wiedergegeben. Beachten Sie, dass der Link auf den Paketnamen und nicht auf den Verzeichnisnamen dieses Pakets verweisen sollte.
Sie können die beiden Schritte auch in einem abkürzen. Zum Beispiel, um den obigen Anwendungsfall auf eine kürzere Art und Weise auszuführen:
cd ~/projects/node-bloggy # gehe in das Verzeichnis deines Hauptprojektsnpm link ../node-redis # linke das Verzeichnis deiner Abhängigkeit
Die zweite Zeile ist das Äquivalent zu:
(cd ../node-redis; npm link)npm link redis
Das heißt, es wird zuerst ein globaler Link erstellt und dann das globale Installationsziel in den node_modules
Ordner des Projekts gelinkt.
Beachten Sie, dass Sie sich in diesem Fall auf den Verzeichnisnamen node-redis
und nicht auf den Paketnamen redis
beziehen.
Wenn Ihr verlinktes Paket einen Geltungsbereich hat (siehe scope
), muss Ihr Link-Befehl diesen Geltungsbereich einschließen, z.B.
npm link @myorg/privatepackage
Siehe auch
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc