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 件のコメント:
コメントを投稿