Synopsis
npm-linkki (pakettihakemistossa)npm-linkki <pkg>alias: npm ln
Kuvaus
Pakettien linkittäminen on kaksivaiheinen prosessi.
Ensin npm link
pakettikansiossa luodaan symlinkki globaaliin kansioon{prefix}/lib/node_modules/<package>
, joka linkittää pakettiin, jossa npmlink
-komento suoritettiin. Se linkittää myös kaikki paketissa olevat binit osoitteeseen {prefix}/bin/{name}
.Huomaa, että npm link
käyttää globaalia etuliitettä (katso sen arvo kohdasta npm prefix -g
).
Jatkossa, jossain muussa paikassa, npm link package-name
luo asymbolisen linkin globaalisti asennetusta package-name
:sta nykyisen kansion node_modules/
:ään.
Huomaa, että package-name
otetaan package.json
:stä,ei hakemiston nimestä.
Paketin nimeen voidaan valinnaisesti liittää etuliite scope. Katso scope
.Laajuusalueen edessä on oltava @-symboli ja sen jälkeen vinoviiva.
Laadittaessa tar-paketteja npm publish
:lle, linkitetyt paketit ”tilannekuvataan” nykyiseen tilaansa ratkaisemalla symboliset linkit.
Tämä on kätevää, kun asennat omia juttujasi, jotta voit työskennellä niiden parissa ja testata niitä toistuvasti ilman, että joudut jatkuvasti rakentamaan niitä uudelleen.
Esimerkiksi:
cd ~/projects/node-redis # mene pakettihakemistoonnpm link # luo globaalin linkincd ~/projects/node-bloggy # mene johonkin muuhun pakettihakemistoon.npm link redis # linkitä paketti
Nyt kaikki muutokset ~/projects/node-redis:iin heijastuvat ~/projects/node-bloggy/node_modules/node-redis/:een. Huomaa, että linkin tulee olla paketin nimeen, ei kyseisen paketin hakemiston nimeen.
Voit myös lyhentää nämä kaksi vaihetta yhteen. Voit esimerkiksi tehdä yllä olevan käyttötapauksen lyhyemmällä tavalla:
cd ~/projects/node-bloggy # siirry pääprojektisi hakemistoonnpm link ../node-redis # linkitä riippuvuussuhteesi hakemistoon
Kakkosrivi vastaa sitä, että teet:
(cd ../node-redis; npm link)npm link redis
Se luo siis ensin globaalin linkin ja linkittää sitten globaalin asennuskohteen projektisi node_modules
-kansioon.
Huomaa, että tässä tapauksessa viitataan hakemiston nimeen node-redis
eikä paketin nimeen redis
.
Jos linkitettävällä paketilla on laajuus (ks. scope
), linkkikomentosi on sisällytettävä tämä laajuus, esim.
npm link @myorg/privatepackage
Katso myös
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc