モジュール側(呼び出し先)から実行スクリプト(呼び出し元)のディレクトリのパスを獲得する
こういうのを
./app.js
var path = require('path'); var waf = require('w-a-f'); var wf = waf(); wf.use(require( __dirname + '/middleware/warn' )()) .use(require( __dirname + '/middleware/nyan' )()) .use(require( __dirname + '/middleware/guu' )()) ;
こういうふうにしたい
var path = require('path'); var waf = require('w-a-f'); var wf = waf(); wf.use('warn') .use('nyan') .use('guu' ) ;
呼び出されるモジュールから呼び出し側のスクリプトのパスが認識できれば、上のような省略可能だけど、呼び出されるモジュールで __dirname は使えない。ので
./node_modules/w-a-f/index.js
var dirRunScript = path.dirname( process.argv[1] ); var middleware = require(path.join( dirRunScript, 'middleware', middlewareName ))();
で取得する。
|-- app.js * 実行スクリプト |-- middleware | |-- guu.js | |-- nyan.js | `-- wan.js `-- node_modules `-- w-a-f |-- index.js * 呼び出されるモジュール
もっとスマートな方法あるのかな?