如何告诉Electron packager使用我的自定义电子配置文件?

时间:2017-05-29 13:07:45

标签: angularjs electron electron-packager

我通过app根文件夹中的电子成功运行了我的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');

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

这很好用,但是当我将它打包为Windows .exe文件时,我很难成功启动电子应用程序。当我按照以下方式制作exe包时(来自app root dir):

electron-packager . MyAppName --platform=win32 --arch=x64

然后启动MyApp.exe,它失败了:

Cannot find module MyApp/resources/app/index.js

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

我如何告诉电子打包者使用我的electron.conf.js来启动我的本地网络服务器?

1 个答案:

答案 0 :(得分:0)

所以,整个技巧是将index.js文件添加到根项目目录中,而index.js意味着包含电子app conf,例如:

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

使用电子打包器向应用程序提交后,index.js被复制到resources/app/index.js并在启动.exe时用作电子加载配置。