Es ist in der Tat möglich, npm programmgesteuert zu verwenden, und dies wurde in älteren Revisionen der Dokumentation beschrieben. Es wurde inzwischen aus der offiziellen Dokumentation entfernt, existiert jedoch weiterhin in der Quellcodeverwaltung mit der folgenden Aussage:
Obwohl npm programmgesteuert verwendet werden kann, ist seine API nur für die Verwendung durch die CLI vorgesehen, und es werden keine Garantien hinsichtlich seiner Eignung für andere Zwecke gegeben. Wenn Sie npm verwenden möchten, um eine Aufgabe zuverlässig auszuführen, ist es am sichersten, den gewünschten npm-Befehl mit den entsprechenden Argumenten aufzurufen.
Die semantische Version von npm bezieht sich eher auf die CLI selbst als auf die zugrunde liegende API. Es ist nicht garantiert, dass die interne API stabil bleibt, selbst wenn die Version von npm angibt, dass laut Semver keine wesentlichen Änderungen vorgenommen wurden .
In der Originaldokumentation wurde das folgende Codebeispiel bereitgestellt:
var npm = require('npm')
npm.load(myConfigObject, function (er) {
if (er) return handlError(er)
npm.commands.install(['some', 'args'], function (er, data) {
if (er) return commandFailed(er)
// command succeeded, and data might have some info
})
npm.registry.log.on('log', function (message) { ... })
})
Da npm im node_modules
Ordner vorhanden ist, können Sie require('npm')
ihn wie jedes andere Modul laden. Um ein Modul zu installieren, möchten Sie verwenden npm.commands.install()
.
Wenn Sie in der Quelle suchen müssen, dann ist es auch auf GitHub . Hier ist ein vollständiges Arbeitsbeispiel für den Code, der dem Ausführen npm install
ohne Befehlszeilenargumente entspricht:
var npm = require('npm');
npm.load(function(err) {
// handle errors
// install module ffi
npm.commands.install(['ffi'], function(er, data) {
// log errors or data
});
npm.on('log', function(message) {
// log installation progress
console.log(message);
});
});
Beachten Sie, dass das erste Argument für die Installationsfunktion ein Array ist. Jedes Element des Arrays ist ein Modul, das npm zu installieren versucht.
Eine erweiterte Verwendung finden Sie in der npm-cli.js
Datei zur Quellcodeverwaltung.
npm install npm --save
zuerst tun . Beispiel funktioniert