Использование require, когда электронное приложение упаковано в asar

В моем main.js у меня есть:

var mainFrm = require('./MainFrm');

Это прекрасно работает, за исключением случаев, когда приложение упаковано в файл asar. Я получаю ошибку "Не удается найти модуль".

Документация гласит использовать следующее:

require('/path/to/example.asar/dir/module.js');

Я попробовал это, но получил ту же ошибку. Где начинается путь при использовании выше? Путь начинается с Electron.exe? Кроме того, если я использую require('/resources/app.asar/MainFrm.js'), какой путь мне использовать для приложений OS X, поскольку папка Resources находится в другом месте? Какой путь мне следует использовать во время разработки / отладки (т.е. не внутри асара)

1 ответ

Я думаю, что у вас может быть 2 вопроса. Во-первых, вам может потребоваться четко указать расширение файла, поэтому ищите MainFrm.js, не просто MainFrm, Во-вторых, попробуйте использовать resolve определить имя относительно текущего каталога.

Одним из способов решения этой проблемы является разрешение пути во время выполнения, например:

    var mainFrm = require("path").resolve(__dirname, "./MainFrm.js");

Попробуйте несколько комбинаций этого и посмотрите, не поможет ли это.

Другие вопросы по тегам