Скажем, у меня есть два файла: 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
вызывающей меня функции?"