Приложение Electron Forge: Проблемы с расположением исполняемого файла в сборке релиза

У меня есть приложение Electron Forge, предназначенное для запуска сервера Django (на Windows). Сервер Django скомпилирован в исполняемый файл с помощью PyInstaller. Приложение Electron Forge вызывает этот исполняемый файл с помощью команды spawn.

Когда я собираю приложение Electron Forge с помощью npm run make, оно функционирует, как и ожидалось. Однако при использовании npm run release (который генерирует установочный файл) исполняемый файл не может быть найден. Кроме того, он не существует в папке ресурсов.

При запуске сервера я получаю ошибку:

Error: spawn C:\Users\****\AppData\Local\Programs\****\resources\django-server\server.exe ENOENT

Мой файл forge.config.ts:

Const config: ForgeConfig = { 
    packagerConfig: {
        asar:true,
        icon "./src/assets/Logo/icon"
        extraResources: ['./django-server/server.exe'] 
    }
    makers: [
        new MakerSquirrel({noMsi: false}),
        new MakerZIP({})
    ], ....

Файл server.exe запускается внутри файла index.ts с помощью команды spawn:

exePath = path.join(process.resourcesPath, 'django-server', 'server.exe');
const child = spawn(exePath, []);

Почему файл server.exe не копируется в папку ресурсов при запуске npm run release

?

Проблема заключалась в том, что конфигурация electron-forge и electron-builder была неправильной. Для npm run make использовался electron-forge, и он работал хорошо. Релизная часть была собрана с помощью electron-builder, и эта конфигурация была неправильной. Чтобы встроить иконки и файл server.exe в приложение electron, эти ресурсы должны были быть указаны в файле package.json.

"build": {
  "win": { 
    "icon": icon "src/assets/Logo/icon",
    "extraResources": ["django-server/server.exe"]
   }
  } 
Вернуться на верх