【发布时间】:2022-09-23 07:48:58
【问题描述】:
我有一个在电子内部运行的 laravel 项目 我在文件夹结构下面给出了 我的 larvel 项目在 www 里面
当我使用我的 laravel 项目 npm 启动我的电子项目统计信息时,现在我想制作该项目的可分发 exe 文件
我正在尝试使用电子生成器,但我没有找到任何将 laravel 与电子一起使用的文档,有人可以帮助解决这个问题吗
我在这里添加 main.js 文件代码,以便您可以参考
main.js
const electron = require(\"electron\");
const path = require(\"path\");
const BrowserWindow = electron.BrowserWindow;
const app = electron.app;
app.on(\"ready\", () => {
createWindow();
});
var phpServer = require(\"node-php-server\");
const port = 8000,
host = \"127.0.0.1\";
const serverUrl = `http://${host}:${port}`;
let mainWindow;
function createWindow() {
console.log(`${__dirname}`),
phpServer.createServer({
port: port,
hostname: host,
base: `${__dirname}/www/public`,
keepalive: false,
open: false,
bin: `${__dirname}/php/php.exe`,
router: __dirname + \"/www/server.php\",
});
const { width, height } = electron.screen.getPrimaryDisplay().workAreaSize;
mainWindow = new BrowserWindow({
width: width,
height: height,
show: false,
autoHideMenuBar: false,
});
mainWindow.loadURL(serverUrl);
mainWindow.webContents.once(\"dom-ready\", function () {
mainWindow.show();
mainWindow.maximize();
});
mainWindow.on(\"closed\", function () {
phpServer.close();
mainWindow = null;
});
}
app.on(\"window-all-closed\", function () {
if (process.platform !== \"darwin\") {
phpServer.close();
app.quit();
}
});
app.on(\"activate\", function () {
if (mainWindow === null) {
createWindow();
}
});
同样在这里我添加 package.json 文件代码也供参考
包.json
{
\"name\": \"laravelprocject\",
\"version\": \"1.0.0\",
\"description\": \"\",
\"main\": \"main.js\",
\"scripts\": {
\"start\": \"electron .\",
\"php\": \"/usr/bin/php\",
\"laravel:serve\": \"php artisan serve\"
},
\"keywords\": [],
\"author\": \"\",
\"license\": \"ISC\",
\"devDependencies\": {
\"electron\": \"^20.1.0\",
\"electron-packager\": \"^16.0.0\"
},
\"dependencies\": {
\"node-php-server\": \"^0.1.2\"
}
}
标签: php laravel electron desktop-application electron-builder