Memang mungkin untuk menggunakan npm secara terprogram, dan itu diuraikan dalam revisi dokumentasi yang lebih lama. Sejak itu telah dihapus dari dokumentasi resmi, tetapi masih ada di kontrol sumber dengan pernyataan berikut:
Meskipun npm dapat digunakan secara terprogram, API-nya dimaksudkan untuk digunakan hanya oleh CLI, dan tidak ada jaminan yang dibuat terkait kesesuaiannya untuk tujuan lain apa pun. Jika Anda ingin menggunakan npm untuk melakukan beberapa tugas dengan andal, hal teraman yang harus dilakukan adalah menjalankan perintah npm yang diinginkan dengan argumen yang sesuai.
Versi semantik npm mengacu pada CLI itu sendiri, bukan API yang mendasarinya. API internal tidak dijamin akan tetap stabil meskipun versi npm menunjukkan tidak ada perubahan yang melanggar yang telah dibuat menurut semver .
Dalam dokumentasi asli, berikut ini adalah contoh kode yang diberikan:
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)
})
npm.registry.log.on('log', function (message) { ... })
})
Karena npm ada di node_modulesfolder, Anda dapat menggunakannya require('npm')untuk memuatnya seperti modul lainnya. Untuk memasang modul, Anda akan ingin menggunakan npm.commands.install().
Jika Anda perlu melihat sumbernya maka itu juga ada di GitHub . Berikut adalah contoh lengkap kode yang berfungsi, yang setara dengan menjalankan npm installtanpa argumen baris perintah apa pun:
var npm = require('npm');
npm.load(function(err) {
npm.commands.install(['ffi'], function(er, data) {
});
npm.on('log', function(message) {
console.log(message);
});
});
Perhatikan bahwa argumen pertama untuk fungsi instal adalah array. Setiap elemen dari array adalah modul yang akan coba dipasang oleh npm .
Penggunaan lebih lanjut dapat ditemukan di npm-cli.jsfile pada kontrol sumber.
npm install npm --saveterlebih dahulu. Contoh bekerja dengan baik :)