Synopsis
npm link (in package dir)npm link <pkg>alias: npm ln
Beschrijving
Package linking is een proces in twee stappen.
Eerst zal npm link
in een pakketmap een symlink maken in de globale map{prefix}/lib/node_modules/<package>
die linkt naar het pakket waar het npmlink
commando werd uitgevoerd. Merk op dat npm link
het globale voorvoegsel gebruikt (zie npm prefix -g
voor de waarde ervan).
Volgende, op een andere locatie, npm link package-name
zal een symbolische link maken van het globaal geïnstalleerde package-name
naar node_modules/
in de huidige map.
Merk op dat package-name
afkomstig is van package.json
, niet van de mapnaam.
De pakketnaam kan optioneel voorafgegaan worden door een bereik. Zie scope
. De scope moet voorafgegaan worden door een @-symbool en gevolgd worden door een schuine streep.
Bij het maken van tarballs voor npm publish
, worden de gelinkte pakketten “snapshotted” naar hun huidige staat door de symbolische links te resolven.
Dit is handig voor het installeren van je eigen spul, zodat je er aan kunt werken en het kunt testen zonder het steeds opnieuw te hoeven bouwen.
Bijvoorbeeld:
cd ~/projects/node-redis # ga naar de package directorynpm link # maakt globale linkcd ~/projects/node-bloggy # ga naar een andere package directory.npm link redis # link-installeer het pakket
Nu zullen alle wijzigingen in ~/projects/node-redis worden weerspiegeld in~/projects/node-bloggy/node_modules/node-redis/. Merk op dat de link naar de naam van het pakket moet zijn, niet de naam van de map voor dat pakket.
Je kunt de twee stappen ook in één verkorten. Bijvoorbeeld, om de bovenstaande use-case op een kortere manier uit te voeren:
cd ~/projects/node-bloggy # ga naar de dir van je hoofdprojectnpm link ../node-redis # link de dir van je dependency
De tweede regel is het equivalent van het uitvoeren van:
(cd ../node-redis; npm link)npm link redis
Dat wil zeggen dat er eerst een globale link wordt gemaakt, en dat het globale installatiedoel vervolgens wordt gekoppeld aan de node_modules
-map van uw project.
Merk op dat u in dit geval verwijst naar de mapnaam, node-redis
, in plaats van de pakketnaam redis
.
Als uw gelinkte pakket scoped is (zie scope
), moet uw link commando die scope bevatten, bijv.
npm link @myorg/privatepackage
Zie ook
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc