Как упакованное электронное приложение может использовать child_process?

Я уже написал часть электронного приложения. Фактически я подключил 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();
?>

(Примечание: этот файл работает без упаковки)

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]