Sinossi
npm link (in package dir)npm link <pkg>alias: npm ln
Descrizione
Il collegamento dei pacchetti è un processo in due fasi.
Prima, npm link
in una cartella del pacchetto creerà un link simbolico nella cartella globale{prefix}/lib/node_modules/<package>
che si collega al pacchetto in cui è stato eseguito il comando npmlink
. Collegherà anche qualsiasi contenitore nel pacchetto a {prefix}/bin/{name}
.Nota che npm link
usa il prefisso globale (vedi npm prefix -g
per il suo valore).
Poi, in qualche altra posizione, npm link package-name
creerà un collegamento simbolico da package-name
installato globalmente a node_modules/
della cartella corrente.
Nota che package-name
è preso da package.json
, non dal nome della directory.
Il nome del pacchetto può essere facoltativamente preceduto da uno scopo. Vedere scope
.Lo scope deve essere preceduto da un simbolo @ e seguito da una barra.
Quando si creano tarball per npm publish
, i pacchetti collegati vengono “snapshottati” al loro stato attuale risolvendo i collegamenti simbolici.
Questo è comodo per installare la propria roba, in modo da poterci lavorare e testarla iterativamente senza doverla ricostruire continuamente.
Per esempio:
cd ~/progetti/node-redis # vai nella directory del pacchettonpm link # crea il link globalecd ~/progetti/node-bloggy # vai in qualche altra directory del pacchetto.npm link redis # link-installa il pacchetto
Ora, qualsiasi modifica a ~/progetti/node-redis si rifletterà in~/progetti/node-bloggy/node_moduli/node-redis/. Nota che il collegamento dovrebbe essere al nome del pacchetto, non al nome della directory per quel pacchetto.
Puoi anche abbreviare i due passi in uno. Per esempio, per fare il caso d’uso precedente in modo più breve:
cd ~/projects/node-bloggy # vai nella dir del tuo progetto principalenpm link ../node-redis # collega la dir della tua dipendenza
La seconda linea è l’equivalente di fare:
(cd ../node-redis; npm link)npm link redis
Ovvero, prima crea un link globale, e poi collega il target globalinstallation nella cartella node_modules
del tuo progetto.
Nota che in questo caso, stai facendo riferimento al nome della directory, node-redis
, piuttosto che al nome del pacchetto redis
.
Se il tuo pacchetto collegato ha uno scopo (vedi scope
) il tuo comando di collegamento deve includere quello scopo, per esempio
npm link @myorg/privatepackage
Vedi anche
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc