角电子应用程序无法启动并自动退出

时间:2018-08-23 18:04:57

标签: angular electron

am试图设置Angle 6和Electronic 2.0项目应用。在安装所有依赖项并运行npm后,运行electron-build应用程序已成功构建并生成了dist文件夹,但该应用程序会自动退出而不启动。 这是package.json文件

{
"name": "front",
"version": "0.0.0",
"main": "main.js",
"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "electron": "electron .",
    "electron-build":"ng build --prod"
}

这是main.js文件

const {app,BrowserWindow} = require('electron');
let win;
function createWindow (){
  win = new BrowserWindow({
    height: 700,
    width:1200,
    backgroundColor:'#ffffff'
  })
  // win.once('ready-to-show', ()=>{win.show()})
  win.loadURL(`file://${__dirname}/dist/index.html`)

    win.on('closed',function(){
    win=null;
  })
}

app.on('ready',createWindow)

app.on('windows-all-closed',()=>{
  if(process.platform!=='darwin'){
    app.quit();
  }

})
app.on('activate',function(){
  if(win==null){
    createWindow()
  }
})

2 个答案:

答案 0 :(得分:0)

我真的不知道为什么您的应用程序无法启动,但是即使Angular在file://协议下也无法正常运行。例如路由之类的东西。 我推荐electron-serve。这是一个很小的图书馆,像魅力一样。

const {app,BrowserWindow} = require('electron');
const serve = require('electron-serve');

const loadURL = serve({directory: 'dist'});

let win;
function createWindow (){
  win = new BrowserWindow({
    height: 700,
    width:1200,
    backgroundColor:'#ffffff'
  })
  loadURL(win);

  win.on('closed',function(){
    win=null;
  })
}

app.on('ready',createWindow)

app.on('windows-all-closed',()=>{
  if(process.platform!=='darwin'){
    app.quit();
  }

})
app.on('activate',function(){
  if(win==null){
    createWindow()
  }
})

答案 1 :(得分:0)

哎呀,我确实知道了,应该使用它

win.loadURL(`file://${__dirname}/dist/front/index.html`)

代替:

win.loadURL(`file://${__dirname}/dist/index.html`)

因为构建应用程序后,electron生成了一个包含“ front / index.htlm”的dist文件夹,其中“ / front”是我项目的根目录 因此通过运行npm run electronic-build然后运行npm run electronic-p可以达到预期的效果