Я уже написал часть электронного приложения. Фактически я подключил PHP к Electron, используя дочерний процесс. (Код файла main.js, который делает это, можно найти внизу моего вопроса, чтобы все было понятно).
Когда я запускаю приложение Electron, используя
electron ./main.js
все работает хорошо: файл PHP выполняется правильно. Но это не то, что я хочу. Я хочу быть в состоянии упаковать мое приложение, предъявляя иск
electron-packager --electron-version=2.0.2 . --platform=win32 --arch=x64
Выполнение этой команды не дает ошибок. Все идет хорошо, и все необходимые файлы копируются в подкаталог. Но когда я запускаю созданный файл .exe, он не показывает ничего полезного. Только пустая страница.
Может ли кто-нибудь помочь мне и дать мне некоторые ресурсы, которые могли бы помочь мне немного дальше? Я уже искал в Интернете решение и болтал по каналу Electron SLACK, но ответа там не получил. В Slack это было потому, что я не был достаточно быстр, чтобы ответить, так как я был занят … И я не нашел ничего полезного в Интернете.
Я надеюсь, что кто-то здесь может дать мне несколько маленьких советов, чтобы я мог искать в лучшем направлении.
А теперь, как и обещал код файла .main.js:
const {app, BrowserWindow} = require('electron');
const url = require('url');
let window;
function createWindow()
{
const { execFile } = require('child_process');
const child = execFile('php/php.exe', ['-S', '127.0.0.1:4911', '-t',
'./www'], (error, stderr, stdout) => {
if (error) { console.log(error); }
if (stderr) { console.log(stderr); }
});
window = new BrowserWindow({width: 800, height: 600});
window.loadURL(url.format({
pathname: 'localhost:4911',
protocol: 'http:',
slashes: true
}));
window.on('closed', () => {
window = null;
});
}
app.on('ready', createWindow);
app.on('winow-all-closed', () => {
if(process.platform !== "darwin") {
app.quit();
}
});
app.on('activate', () => {
if(window == null) {
createWindow();
}
});
Содержимое файла ./www./index.php, на которое ссылается child_process, выглядит следующим образом:
<?php
phpinfo();
?>
(Примечание: этот файл работает без упаковки)
Задача ещё не решена.
Других решений пока нет …