2016-10-14 4 views

Antwort

1

Ich denke, es gibt keine Möglichkeit, dieses Material mit einigen eingebauten Module zu bekommen

Aber Sie können Ihren eigenen Code schreiben, dass Informationen und Updates zu erhalten in Ihrer eigenen package.json Datei

var fs = require("fs"); 

function getPackageInfo() { 
    fs.readdir("./node_modules", function(err, module) { 
    if (err) { 
     console.log(err); 
     return; 
    } 
    console.log(module) 
    module.forEach(function(dir) { 
     if (dir.indexOf(".") !== 0) { 
     var packageFile = "./node_modules/" + dir + "/package.json"; 
     if (fs.existsSync(packageFile)) { 
      fs.readFile(packageFile, function(err, data) { 
      if (err) { 
       console.log(err); 
      } else { 
       var json = JSON.parse(data); 
       console.log('"' + json.name + '": "' + json.version + '",'); 
      } 
      }); 
     } 
     } 
    }); 

    }); 
} 

getPackageInfo(); 

Ausgang

"setprototypeof": "1.0.1", 
"raw-body": "2.1.7", 
"source-map": "0.4.4", 
"statuses": "1.3.0", 
"transformers": "2.1.0", 
"type-is": "1.6.13", 
"methods": "1.1.2", 
"uglify-js": "2.7.3", 
"uglify-to-browserify": "1.0.2", 
"utils-merge": "1.0.0", 
"unpipe": "1.0.0", 
"vary": "1.0.1", 
"void-elements": "2.0.1", 
"with": "4.0.3", 
"window-size": "0.1.0", 
"wordwrap": "0.0.3", 
"yargs": "3.10.0", 
"mime-db": "1.24.0", 
................... 
.................. 
.................. 
................. 

Sie können auch

verwenden

npm list --depth=0

Befehl Paketliste und die Version von child_process spawn

+0

Diese Lösung ist zu erhalten gut als Workaround, da keine direkte Methode verfügbar ist. Dies könnte jedoch problematisch sein, da npm jetzt (neuere Versionen> = v3) einen flachen Baum erzeugt und dieser Code daher einen größeren Abhängigkeitsbaum als den tatsächlichen erzeugen würde. – Pankaj

+0

Sie können auch 'npm list --depth = 0' Befehl verwenden, um Paketliste und Version mit * shelljs * oder * child_process spawn * anstelle von Ordner und Datei zu erhalten –

+0

Stimmen Sie zu, noch müssen wir ein paar Sachen tun, um es zu bekommen erledigt. Aber Ihr Punkt ist korrekt Ich aktualisiere meine Antwort – abdulbarik

Verwandte Themen