我通过应用程序根文件夹中的 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/