Synopsis
npm-link (i pakkefortegnelse)npm-link <pkg>alias: npm ln
Beskrivelse
Pakkelinking er en proces i to trin.
Først vil npm link
i en pakkemappe oprette et symbolsk link i den globale mappe{prefix}/lib/node_modules/<package>
, der linker til den pakke, hvor npmlink
-kommandoen blev udført. Den vil også linke eventuelle bins i pakken til {prefix}/bin/{name}
.Bemærk, at npm link
bruger det globale præfiks (se npm prefix -g
for dets værdi).
Næst, på et andet sted, vil npm link package-name
oprette et symbolsk link fra globalt-installeret package-name
til node_modules/
af den aktuelle mappe.
Bemærk, at package-name
er taget fra package.json
,ikke fra mappenavnet.
Pakkenavnet kan eventuelt være forsynet med et scope som præfiks. Se scope
.scope skal indledes med et @-symbol og efterfølges af en skråstreg.
Når der oprettes tarballs for npm publish
, bliver de linkede pakker “snapshottet” til deres aktuelle tilstand ved at opløse de symbolske links.
Dette er praktisk til at installere dine egne ting, så du kan arbejde på dem og teste dem iterativt uden at skulle genopbygge dem hele tiden.
For eksempel:
cd ~/projects/node-redis # gå ind i pakkemappennpm link # opretter globalt linkcd ~/projects/node-bloggy # gå ind i en anden pakkemappe.npm link redis # link-installer pakken
Nu vil alle ændringer i ~/projects/node-redis blive afspejlet i ~/projects/node-bloggy/node_modules/node-redis/. Bemærk, at linket skal være til pakkenavnet, ikke til mappenavnet for den pågældende pakke.
Du kan også forkorte de to trin i ét. For eksempel, for at gøre ovenstående brugstilfælde på en kortere måde:
cd ~/projects/node-bloggy # gå ind i mappen for dit hovedprojektnpm link ../node-redis # link mappen for din afhængighed
Den anden linje svarer til at gøre:
(cd ../node-redis; npm link)npm link redis
Det vil sige, at den først opretter et globalt link og derefter linker det globale installationsmål ind i dit projekts node_modules
-mappe.
Bemærk, at du i dette tilfælde henviser til mappenavnet, node-redis
,snarere end til pakkenavnet redis
.
Hvis din linkede pakke er scoped (se scope
), skal din link-kommando inkludere dette scope, f.eks.
npm link @myorg/privatepackage
Se også
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npm config
- npmrc