1

我已经写了一个电子应用程序的一部分。事实上,我使用子进程将 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();
?>

(注意:此文件无需打包即可使用)

4

0 回答 0