Synopsis
npm link (dans le répertoire du paquet)npm link <pkg>alias : npm ln
Description
La liaison de paquets est un processus en deux étapes.
Premièrement, npm link
dans un dossier de paquetage créera un lien symbolique dans le dossier global{prefix}/lib/node_modules/<package>
qui se lie au paquetage où la commande npmlink
a été exécutée. Il reliera également tous les bacs du paquet à {prefix}/bin/{name}
.Notez que npm link
utilise le préfixe global (voir npm prefix -g
pour sa valeur).
Puis, dans un autre emplacement, npm link package-name
créera un lien asymbolique depuis package-name
installé globalement vers node_modules/
du dossier actuel.
Notez que package-name
est tiré de package.json
,et non du nom du répertoire.
Le nom du paquet peut être éventuellement préfixé d’une portée. Voir scope
.Le scope doit être précédé d’un symbole @ et suivi d’une barre oblique.
Lors de la création de tarballs pour npm publish
, les paquets liés sont « snapshotés » à leur état actuel en résolvant les liens symboliques.
C’est pratique pour installer votre propre truc, afin que vous puissiez travailler dessus et le tester itérativement sans avoir à reconstruire continuellement.
Par exemple :
cd ~/projets/node-redis # aller dans le répertoire du packagenpm link # crée un lien globalcd ~/projets/node-bloggy # aller dans un autre répertoire du package.npm link redis # link-install le paquet
Maintenant, toute modification de ~/projects/node-redis sera reflétée dans~/projects/node-bloggy/node_modules/node-redis/. Notez que le lien doit être vers le nom du paquet, pas vers le nom du répertoire de ce paquet.
Vous pouvez également raccourcir les deux étapes en une seule. Par exemple, pour faire le cas d’utilisation ci-dessus d’une manière plus courte:
cd ~/projets/node-bloggy # aller dans le dir de votre projet principalnpm link ../node-redis # lier le dir de votre dépendance
La deuxième ligne est l’équivalent de faire:
(cd ../node-redis ; npm link)npm link redis
C’est-à-dire qu’elle crée d’abord un lien global, puis lie la cible d’installation globale dans le dossier node_modules
de votre projet.
Notez que dans ce cas, vous faites référence au nom du répertoire, node-redis
,plutôt qu’au nom du paquet redis
.
Si votre paquet lié est scopé (voir scope
), votre commande de liaison doit inclure cette portée, par exemple.
npm link @myorg/privatepackage
See Also
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc
.