angularjs - 如何告诉 Electron 打包器使用我的自定义 Electron 配置文件?

标签 angularjs electron electron-packager

我通过应用程序根文件夹中的 Electron 成功运行了我的 Angular 2 应用程序。我将应用程序构建到 dist通过运行文件夹:

ng build --env=prod

然后我就跑:
electron electron.conf.js

在哪里 electron.conf.js我运行本地网络服务器来提供来自 dist 的文件
connect().use(serveStatic(__dirname + '/dist')).listen(8997, function(){
    console.log('Webserver for electron is running on port 8997...');
});
mainWindow.loadURL('http://localhost:8997');

我需要这种方法,因为我使用不会从 file:/// 初始化的 gapi.js协议(protocol)和需求http(s) .

这很好用,但是当我将 Electron 应用程序打包为 Windows .exe 文件时,我很难成功启动它。当我按以下方式制作 exe 包时(来自应用程序根目录):
electron-packager . MyAppName --platform=win32 --arch=x64

然后启动 MyApp.exe,它失败了:
Cannot find module MyApp/resources/app/index.js

似乎通过 electron-packager 运行的 Electron 正在尝试通过默认 file:// 为应用程序提供服务协议(protocol)(而所有文件实际上都在 MyApp/resources/app/dist/index.js 中并且应该通过 http 提供)。

我如何告诉 electron-packager 使用我的 electron.conf.js这将启动我的本地网络服务器?

最佳答案

所以,整个技巧是添加 index.js文件到根项目目录和index.js旨在包含 Electron 应用程序配置,例如:

const electron = require('electron')
var app = electron.app;
app.on('ready', function () {
    mainWindow = new BrowserWindow({ width: 1200, height: 900 });
    mainWindow.loadURL('my-url-here');
})

使用 Electron 打包程序捆绑应用程序后,此 index.js复制到 resources/app/index.js并在启动 .exe 时用作 Electron 负载配置。

关于angularjs - 如何告诉 Electron 打包器使用我的自定义 Electron 配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44243288/

相关文章:

javascript - 通过 Angular js传递json中的id

javascript - 为无框窗口添加边框 - Electron

javascript - 需要这些样式面板在数据输入后改变颜色

macos - Electron MAS构建文件访问

reactjs - Electron-builder 错误 - fatal error : Unable to commit changes

node.js - 将文件/文件夹复制到Electron Dist文件夹

javascript - Angular.js 中的 Http 调用发生了两次

angularjs - 在具有多个 View 的tomcat中配置angularjs应用程序

ajax - 如何使用angularjs实时创建搜索

javascript - {app, BrowserWindow} 在 JavaScript (node.js) 中是什么意思?