Node.jsのfsモジュールを、ファイルの入出力ができます。
npmでインストールしたモジュールを読み込んでみます。
npmでインストールしたモジュールは、node_modulesディレクトリに保存されます。パッケージ名やバージョン、依存パッケージなどの詳細情報は、node_modules/パッケージ名/package.json に記述されています。fsを使って、package.jsonを読み込んでみます。
read_packages.js
// File Systemモジュールを読み込む
var fs = require('fs');
var readPackageJson = function(path, cb){
// パスの読み込み開始
var path = path + "/node_modules";
fs.readdir(path, function(err, dirs){
if(err) cb(err, null);
// dirsには指定したパスのファイル名・ディレクトリ名の一覧が入っている
for(var i = 0; i < dirs.length; i++){
var dir = dirs[i];
// 頭文字が.の場合読み込まない
if(dir.charAt(0) === '.') continue;
// package.jsonのパスを指定
var jsonPath = path + "/" + dir + "/package.json";
// package.jsonを読み込み開始
fs.readFile(jsonPath, function(err, data){
if(err) cb(err, null);
// dataには読み込んだBufferが入っている
// toString('utf8')で文字列にする
var jsonStr = data.toString('utf8');
// JSONをパースしてコールバック
cb(null, JSON.parse(jsonStr));
});
}
});
};
// 実行
readPackageJson(".", function(err, json){
if(err) throw err;
console.log(json.name +"@" + json.version );
});
実行結果
$ node read_packages.js express@2.5.6 socket.io@0.8.7
まあ、npm list コマンドで依存関係まで表示されるので、このプログラム自体に意味はないかも。ファイルを読み込む練習ってことで。
0 件のコメント:
コメントを投稿