У меня есть приложение Electron, основанное на шаблонном проекте "электронная реакция-шаблон". В моем приложении у меня есть класс в файле myClass.js
в
app/utils/myClass.js
class MyClass {
// A bunch of stuff...
}
module.exports = MyClass;
Я ссылаюсь на этот класс в сценарии предварительной загрузки процесса визуализации.
app/utils/preload.js
const MyClass = require('./myClass.js');
Который я загружаю в фоновом рабочем процессе рендерера следующим образом:
const workerWindow = new BrowserWindow({
show: false,
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
preload: require('path').join(__dirname, 'utils', 'preload.js')
}
});
Когда я запускаю приложение в режиме разработки / отладки, Модуль MyClass
найден просто отлично, и весь код работает. Тем не менее, когда я go для упаковки приложения (с использованием электронного компоновщика) и установки на Windows, запуск кода вызывает следующую ошибку:
{"code":"MODULE_NOT_FOUND","requireStack":["C:\\Users\\Cooper\\AppData\\Local\\Programs\\my-app\\resources\\app\\utils\\myClass.js","C:\\Users\\Cooper\\AppData\\Local\\Programs\\my-app\\resources\\app\\utils\\preload.js"]}
Почему-то приложение не может найти мой модуль MyClass, хотя я могу подтвердить, что файлы находятся в соответствующем каталоге в упакованном архиве .asar. Я пробовал много разных способов require
использования MyClass, но безрезультатно.
Почему мое упакованное приложение не может найти мой модуль MyClass? Как я могу решить это? Стоит отметить, что в моем предзагрузке. У скрипта js нет проблем с другими зависимостями. Я могу сделать require('electron')
без проблем, например.