Je recherche une commande qui listera les noms des modules globaux que j'ai npm link
aux copies locales, listant également le chemin local.
En fait, une liste de tous les modules installés globalement serait encore meilleure, avec les npm link
'd' marqués d'une manière ou d'une autre.
npm -g ls
devrait lister tous les modules globaux, mais je ne sais pas si cela répertorie les modules liésnpm link
'd. J'ai besoin d'un moyen de garder une trace.Réponses:
Avez-vous essayé de lister simplement le
node_modules
contenu du répertoire (par exemplels -l node_modules | grep ^l
)? Ce sont des liens symboliques normaux.Si vous avez vraiment besoin de trouver tous les liens symboliques, vous pouvez essayer quelque chose comme
find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l
.la source
( ls -l node_modules ; ls -l node_modules/@* ) | grep ^l
ls -l -R ./node_modules | grep ^l
Pour lister tous les modules liés globalement, cela fonctionne (documentation https://docs.npmjs.com/cli/ls ):
J'ai dû d'abord mettre à jour la version de npm sur ma machine:
la source
--link=true
. Mon environnement: Win10, NVM = 1.1.7, nœud actuel = 8.14.0npm unlink <package> -g
Une meilleure alternative à l'analyse
ls
consiste à utiliserfind
comme ceci:Vous pouvez utiliser
-maxdepth 1
pour traiter uniquement le premier niveau de répertoire:Vous pouvez utiliser
-ls
pour plus d'informations.Par exemple, pour rechercher des modules de nœuds liés à npm:
Voici un article sur les raisons pour lesquelles l'analyse
ls
n'est pas la meilleure idéela source
Si vous voulez une belle sortie colorée
npm list
, vous aimerez peut-être:ce qui donne dans mon répertoire actuel de jeu:
Il fait quelques hypothèses mais il devrait fonctionner dans la plupart des cas, ou être facile à adapter avec les explications ci-dessous.
\ls
pour contourner les alias possibles sur votrels
commande-F
option ajoute un indicateur «@» pour les lienssed
commande sélectionne ces liens et supprime l'indicateurxargs
partie transmet la sortie précédente comme arguments ànpm ...
npm
est invoqué aveclist
ouls
pour lister les modules avec des versionsll
pour obtenir des détails sur chaque module répertorié.-g
pour les modules globaux et--depth 0
pour une liste peu profonde (facultatif)--long false
(par défaut avec 'list').Problème: pour une raison quelconque, npm me donne des entrées superflues pour le moment (non colorées). Ce seraient ceux que j'avais " npm unlink " ed.
Pour " une liste de tous les modules installés globalement " dans le chemin npm actuel, il vous suffit de faire
Pour d'autres besoins, vous voudrez peut-être consulter
Vous ne pouvez pas suivre les liens symboliques vers l'arrière sauf si vous analysez tout votre système de fichiers et (alors ce n'est pas une question spécifique à npm).
Pour trouver rapidement des fichiers et des répertoires par nom, j'utilise
locate
ce qui fonctionne sur un index reconstruit généralement une fois par jour.et commencez à travailler à partir de là (vous voudrez peut-être affiner la recherche avec
--regexp
option.la source
-g
pour obtenir mes liens de dépendance transitoires locaux / les plus proches. Merci!J'ai trouvé cette question après avoir également écrit mon propre outil, le voici par souci d'exhaustivité: npm-list-linked .
Il suivra également récursivement tous les paquets liés dans la hiérarchie, à mon travail, nous pouvons parfois avoir
npm link
2-3 niveaux de profondeur et de cette façon vous pouvez voir exactement lesquels sont locaux et lesquels ne le sont pas, évite les surprises.la source
J'ai créé un module Node.js qui utilise
fs
pour vérifier les liens symboliques créés parnpm link
ou autrement.https://www.npmjs.com/package/symlinked
la source
Je me vois et les autres ont souvent cette même question. J'ai écrit une petite CLI pour moi-même appelée
link-status
pour afficher ces informations, cela peut aussi aider les autres! Découvrez-le ici!la source
pour afficher les liens globaux, y compris les packages d'espacement de noms.
La réponse de @ andrew fonctionne parfois:
mais a explosé sur des erreurs de dep peer pour moi à certaines occasions. J'espère que cela aide quelqu'un!
la source