假设我有两个文件,dir/a.js
并且lib/b.js
一个.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")
.
但我希望有一个默认值,比如配置文件。但默认值应该是相对于a.js而不是b.js。换句话说,我应该能够调用b.someFn()
from a.js
,并且应该说,“既然你没有给我传递路径,我将假设默认路径为config.json
。” 但是默认值应该是相对的a.js
,即应该是dir/config.json
而不是 lib/config.json
,如果我这样做了,我会得到require(jsonFile)
。
我可以得到cwd
,但这只有在我从内部启动脚本时才会起作用dir/
。
有没有办法在b.js
里面说someFn()
,“给我__dirname
调用我的函数?”