0

我的问题是因为我很长时间以来一直在研究如何做到这一点,并且前几次它有效,但最近我遇到了很多问题。

我看过几个关于如何将 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 的最终流程?

4

0 回答 0