Tabella dei contenuti

Sinossi

npm link (in package dir)
npm link <pkg>
alias: npm ln

Descrizione

Il collegamento dei pacchetti è un processo in due fasi.

Prima, npm linkin 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 pacchetto
npm link # crea il link globale
cd ~/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 principale
npm 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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.