Upakovka v Electron.JS no po staroy sborke cherez .cjs

This commit is contained in:
Neyra
2026-02-10 19:19:41 +08:00
parent 8e9b7201ed
commit a1bba1d3d1
442 changed files with 19825 additions and 47462 deletions

56
main.cjs Normal file
View File

@@ -0,0 +1,56 @@
const { app, BrowserWindow } = require('electron');
const path = require('path');
const { spawn } = require('child_process');
let mainWindow;
let serverProcess;
// Функция создания окна
function createWindow() {
mainWindow = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
},
icon: path.join(__dirname, 'public/uikit/bot.png') // Попытка найти иконку
});
// Запускаем сервер
startServer();
// Ждем 1.5 сек для старта сервера и загружаем страницу
setTimeout(() => {
mainWindow.loadURL('http://localhost:3000');
}, 1500);
}
function startServer() {
// ИСПРАВЛЕНИЕ: Используем __dirname, который указывает на корень проекта
// Так как main.cjs лежит в корне, __dirname = C:\...\airllm-nodejs
const appPath = __dirname;
console.log("Запуск сервера из:", appPath);
// Запускаем node server/server.js
serverProcess = spawn('node', ['server/server.js'], {
cwd: appPath, // Рабочая директория — корень проекта
shell: true // Нужно для путей с пробелами (Robert Onelli)
});
serverProcess.stdout.on('data', (data) => {
console.log(`[Сервер]: ${data}`);
});
serverProcess.stderr.on('data', (data) => {
console.error(`[Ошибка сервера]: ${data}`);
});
// При закрытии окна убиваем сервер
app.on('window-all-closed', () => {
if (serverProcess) serverProcess.kill();
if (process.platform !== 'darwin') app.quit();
});
}
app.whenReady().then(createWindow);