我通过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
来启动我的本地网络服务器?
答案 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时用作电子加载配置。