Imprimer une liste de tous les modules node.js installés

Dans un script node.js sur lequel je travaille, je souhaite imprimer tous les modules node.js (installés avec npm) sur la ligne de commande. Comment puis-je faire ceci?

console.log(__filename); //now I want to print all installed modules to the command line. How can I do this? 

Utilisez npm ls (il y a même une sortie json)

A partir du script:

test.js:

 function npmls(cb) { require('child_process').exec('npm ls --json', function(err, stdout, stderr) { if (err) return cb(err) cb(null, JSON.parse(stdout)); }); } npmls(console.log); 

courir:

 > node test.js null { name: 'x11', version: '0.0.11' } 

Si vous êtes uniquement intéressé par les paquets installés globalement sans l’arbre complet, alors:

npm -g ls --depth=0

ou localement (omettre -g):

npm ls --depth=0

liste de tous les modules tiers installés globalement, écrivez dans la console:

  npm -g ls 

dans n’importe quel os

 npm -g list 

et c’est tout

En règle générale, il existe deux méthodes pour répertorier les packages installés – via l’interface de ligne de commande ( CLI ) ou dans votre application utilisant l’ API .

Les deux commandes afficheront toutes les versions des packages installés, ainsi que leurs dépendances, dans une arborescence.


CLI

 npm list 

Utilisez l’indicateur -g (global) pour répertorier tous les packages installés globalement. Utilisez l’ --depth=0 pour répertorier uniquement les principaux packages et non leurs dépendances.


API

Dans votre cas, vous voulez l’exécuter dans votre script, vous devrez donc utiliser l’API. De la documentation:

 npm.commands.ls(args, [silent,] callback) 

Outre l’impression sur stdout , les données seront également transmises au rappel.

Pourquoi ne pas les récupérer des dependencies dans package.json ?

Bien sûr, cela ne vous donnera que ceux que vous avez réellement sauvés, mais vous devriez le faire quand même.

 console.log(Object.keys(require('./package.json').dependencies)); 
 for package in `sudo npm -g ls --depth=0 --parseable`; do printf "${package##*/}\n"; done