Я создаю электронное приложение, которое при запуске порождает дочерний процесс на локальном сервере Django (в качестве внутренней обработки).В моей среде разработки электронное приложение работает правильно, когда я запускаю
npm start
Хотя при попытке развернуть мое приложение с
electron-packager .
Исполняемый файл не запускает сервер Django.Когда я просматриваю содержимое каталога resources / app, созданного электронным упаковщиком, я вижу virtualenv и все зависимости Django.Почему мое упакованное приложение не запускает локальный сервер, как моя среда разработки?
My package.json:
{
"name": "AppName",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "electron .",
"dist": "build"
},
"author": "AuthorName",
"license": "CC0-1.0",
"devDependencies": {
"electron-packager": "^14.0.1"
},
"dependencies": {
"electron": "^5.0.6"
}
}
Мой main.js:
// Run local Django server
var ChildProcess = require('child_process');
var DjangoServer = ChildProcess.spawn('python', ['run_server.py']);
const {app, BrowserWindow} = require('electron')
const path = require('path')
let mainWindow
function createWindow () {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
// Load local host served by Django
mainWindow.loadFile('https://localhost:8000')
mainWindow.setMenuBarVisibility(false)
mainWindow.on('closed', function () {
mainWindow = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})
app.on('activate', function () {
if (mainWindow === null) createWindow()
})
// Kill local Django server
app.on('before-quit', function() {
DjangoServer.kill('SIGINT')
})