npmをプログラマブルに使うときのメモ
npmをコマンドでなくスクリプトから使うときのメモ。と言ってもnpm install
の代わりをさせたくらいなのだけど。
初期化
何をするにも(なのかな?少なくともnpm.commands.install()
を実行するときは)npm.load()
を最初に呼んでおく必要がある。
インストール
npm.commands.install()
が$ npm install
の対になるメソッド。
ログ
インストール中のログを出力させたいときは以下のようなコードを書く。
npm.load({}, function() {
npm.commands.install(['co'], function(err, data) {
// ...
});
npm.registry.log.on('log', function(log) {
// ログが出力される
console.log(log);
});
});
注意点としては、npm.registry.log.on()
はnpm.commands.install()
より後に実行しないといけない。
モジュールがインストールされているかどうかを調べる
npm内部でも使用しているらしいread-installedモジュールを使う。
var readInstalled = require('read-installed');
readInstalled('/path/to/package.json', { depth: 1, dev: false }, function(err, data) {
// dataにインストール済みモジュールのデータが入っている
})