Скажем, у меня есть два файла: 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").
Но я хочу, чтобы там был по умолчанию, как файл конфигурации. Но значение по умолчанию должно быть относительно a.js, а не b.js. Другими словами, я должен был бы называть b.someFn() из a.js, и он должен сказать: "поскольку вы не передали мне путь, я возьму путь по умолчанию config.json". Но значение по умолчанию должно быть относительно a.js, т.е. Должно быть dir/config.json и не lib/config.json, которое я получил бы, если бы сделал require(jsonFile).
Я мог бы получить cwd, но это будет работать, только если я запустил script из dir/.
Есть ли способ b.js сказать, внутри someFn(), "дать мне __dirname вызывающей меня функции?"