2 つのファイルがあるdir/a.js
とします。lib/b.js
a.js:
b = require('../lib/b');
b.someFn();
b.js:
var fallback = "./config.json";
module.exports = {
someFn = function(jsonFile) {
console.log(require(jsonFile || fallback);
}
}
この例の の全体的な目的はb.js
json ファイルを読み取ることなので、b.someFn("path/to/file.json")
.
しかし、構成ファイルのように、デフォルトが必要です。ただし、デフォルトはb.jsではなくa.jsを基準にする必要があります。言い換えると、 から呼び出すことができるはずでb.someFn()
、a.js
「パスを渡されなかったので、デフォルトのパスを と仮定します」と言うはずですconfig.json
。しかし、デフォルトは に対して相対的でなければなりません。a.js
つまり、すべきdir/config.json
でなく すべきです。lib/config.json
require(jsonFile)
を取得できましたがcwd
、それは 内からスクリプトを起動した場合にのみ機能しますdir/
。
の中で、「私を呼び出した関数の をください」b.js
と言う方法はありますか?someFn()
__dirname