- Demo: https://github.com/wellwind/8ComicDownloaderElectron
- Reference: https://electron.atom.io/docs/tutorial/quick-start/
ng new electron-demo
cd electron-demo
- 調整
.angular-cli.json
中的assets"assets": [ { "glob": "main.js", "input": "../", "output": "./" }, { "glob": "package.json", "input": "../", "output": "./" } ]
- 新增main.js
const {app, BrowserWindow} = require('electron') const path = require('path') const url = require('url') // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. let win function createWindow () { // Create the browser window. win = new BrowserWindow({width: 800, height: 600}) // and load the index.html of the app. win.loadURL(url.format({ pathname: path.join(__dirname, 'index.html'), protocol: 'file:', slashes: true })) // Open the DevTools. win.webContents.openDevTools() // Emitted when the window is closed. win.on('closed', () => { // Dereference the window object, usually you would store windows // in an array if your app supports multi windows, this is the time // when you should delete the corresponding element. win = null }) } // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.on('ready', createWindow) // Quit when all windows are closed. app.on('window-all-closed', () => { // On macOS it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { // On macOS it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (win === null) { createWindow() } }) // In this file you can include the rest of your app's specific main process // code. You can also put them in separate files and require them here.
- package.json中的scripts
"scripts": { "start": "ng build && concurrently --raw \"ng build -w\" \"electron ./dist\"" }
- package.json中加入
"main": "main.js"
npm install --save-dev electron concurrently
- 調整index.html中的
<base href="/">
改為<base href="./">
npm start