我的问题是因为我很长时间以来一直在研究如何做到这一点,并且前几次它有效,但最近我遇到了很多问题。
我看过几个关于如何将 Electron 与 Angular 链接的博客,但我总是遇到 loadURL 中的 main.js 错误
const { app, BrowserWindow } = require('electron');
const url = require("url");
const path = require("path");
let mainWindow;
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
title: 'frontend',
backgroundColor: '#ffffff',
webPreferences: {
nodeIntegration: true
}
});
mainWindow.maximize();
mainWindow.webContents.openDevTools();
mainWindow.loadURL(
url.format({
pathname: path.join(__dirname, `/dist/index.html`),
protocol: "file:",
slashes: true
})
);
mainWindow.on('closed', function () {
mainWindow = null
});
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit();
})
app.on('activate', function () {
if (mainWindow === null) createWindow();
})
我已经做出了视频和页面通常所说的更改
编辑 package.json"main": "main.js",
把点放进去<base href ="./">
在 angular.json 项目> appName> 架构师> 构建> 选项> outputPath 将其更改为"outputPath":"dist",
不带项目标题
以上所有方法在包装之前都有效。
对于几个提到使用"electron-packager":"^14.2.1",
从一个更简单的命令,如
"packager": "electron-packager.--platform = win32 --out dist / --overwrite"
首先,它会产生一个错误,pathname: path.join (__ dirname, 'dist / index.html'),
因为它将它定位在其他地方,我必须更改 dist / for src /
exe 生成的内容,但在启动时仅显示<app-root> </app-root>
标签而没有 angular 脚本,即一个空页面
其他人发布创建 package.json 脚本,例如:
"electron-package": "ng build --prod && electron-packager. --no-prune --ignore=/node_modules --ignore=/e2e --ignore=/src --overwrite"
或者
"electron-package": "ng build --prod --base-href ./ && electron-packager. --no-prune --ignore=/e2e --ignore=/src --overwrite"
我认为后者不会生成 index.html: c
有谁知道 Angular-cli 和 Electron 的最终流程?