Путь модуля Node к относительным файлам

Поэтому я написал короткий модуль узла (module1) в качестве оболочки для двоичного файла (.exe), который можно вызывать из командной строки.

Вот как я получаю путь к двоичному файлу для выполнения .exe с execFilePromised. Он работает в моем модуле1.

const __dirname = fs.realpathSync('.');
const mpqEditorLocation = path.resolve(__dirname, './mpq/MPQEditor.exe');

Проблема: когда я импортирую модуль1 с npm link ../<module1> в другой проект узла, путь к .exe задан неправильно, так как он находится в моей папке node_modules, а не в <otherproject>/mpq/MPQEditor.exe

Как я могу сделать __dirname относительно фактического файла, а не каталога выполнения проекта?


person rufreakde    schedule 05.02.2020    source источник


Ответы (1)


Итак, я нашел свое решение: не используйте npm link!

Вместо этого используйте npm install <absolute path to your package>.

Я просто напечатал свое местоположение с помощью pwd, а затем установил его туда.

Таким образом, я мог реорганизовать путь к:

const mpqEditorLocation = path.resolve(__dirname, '..', 'mpq', 'MPQEditor.exe');

с тех пор работает :)

person rufreakde    schedule 06.02.2020