我已经写了一个电子应用程序的一部分。事实上,我使用子进程将 PHP 连接到 Electron。(可以在我的问题底部找到执行此操作的 main.js 文件的代码,以保持一切清晰)。
当我使用启动我的电子应用程序时
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();
?>
(注意:此文件无需打包即可使用)