Synopsis
npm-länk (i paketförteckningen)npm-länk <pkg>alias: npm ln
Beskrivning
Paketlänkning är en process i två steg.
Först skapar npm link
i en paketmapp en symlänk i den globala mappen{prefix}/lib/node_modules/<package>
som länkar till det paket där npmlink
-kommandot utfördes. Det kommer också att länka alla bins i paketet till {prefix}/bin/{name}
.Observera att npm link
använder det globala prefixet (se npm prefix -g
för dess värde).
Nästan, på en annan plats, kommer npm link package-name
att skapa en asymbolisk länk från den globalt installerade package-name
till node_modules/
i den aktuella mappen.
Bemärk att package-name
hämtas från package.json
,inte från katalognamnet.
Paketnamnet kan valfritt föregås av ett scope. Se scope
.scope måste föregås av en @-symbol och följas av ett snedstreck.
När man skapar tarballs för npm publish
, ”snapshottas” de länkade paketen till sitt nuvarande tillstånd genom att lösa upp de symboliska länkarna.
Det här är praktiskt för att installera dina egna saker, så att du kan jobba på dem och testa dem iterativt utan att behöva bygga om hela tiden.
Till exempel:
cd ~/projects/node-redis # gå in i paketkatalogennpm link # skapar global länkcd ~/projects/node-bloggy # gå in i någon annan paketkatalog.npm link redis # link-installera paketet
Nu kommer alla ändringar i ~/projects/node-redis att återspeglas i ~/projects/node-bloggy/node_modules/node-redis/. Observera att länken ska vara till paketnamnet, inte katalognamnet för det paketet.
Du kan också förkorta de två stegen i ett. Till exempel, för att göra ovanstående användningsfall på ett kortare sätt:
cd ~/projects/node-bloggy # gå in i katalogen för ditt huvudprojektnpm link ../node-redis # länka katalogen för ditt beroende
Den andra raden är likvärdig med att göra:
(cd ../node-redis; npm link)npm link redis
Det innebär att den först skapar en global länk och sedan länkar det globala installationsmålet till ditt projekts node_modules
-mapp.
Bemärk att du i det här fallet hänvisar till katalognamnet, node-redis
,snarare än till paketnamnet redis
.
Om ditt länkade paket har ett scope (se scope
) måste ditt länkkommando inkludera detta scope, t.ex.
npm link @myorg/privatepackage
See Also
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc