Inhoudsopgave

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 directory
npm link # maakt globale link
cd ~/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 hoofdproject
npm 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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.