/* ** Nuxt */ const http = require('http') const { Nuxt, Builder } = require('nuxt') let config = require('./nuxt.config.js') config.rootDir = __dirname // for electron-builder // Init Nuxt.js const nuxt = new Nuxt(config) const builder = new Builder(nuxt) const server = http.createServer(nuxt.render) // Build only in dev mode if (config.dev) { builder.build().catch(err => { console.error(err) // eslint-disable-line no-console process.exit(1) }) } // Listen the server server.listen() const _NUXT_URL_ = `http://localhost:${server.address().port}` console.log(`Nuxt working on ${_NUXT_URL_}`) /* ** Electron */ let win = null // Current window const electron = require('electron') const path = require('path') const app = electron.app const newWin = () => { win = new electron.BrowserWindow({ icon: path.join(__dirname, 'static/icon.png'), center: true, width: 1024, height: 565, minWidth: 1024, minHeight: 565, frame: false }) win.on('closed', () => win = null) if (config.dev) { // Install vue dev tool and open chrome dev tools const { default: installExtension, VUEJS_DEVTOOLS } = require('electron-devtools-installer') installExtension(VUEJS_DEVTOOLS.id).then(name => { console.log(`Added Extension: ${name}`) win.webContents.openDevTools({ detach: true }) }).catch(err => console.log('An error occurred: ', err)) // Wait for nuxt to build nuxt.hook('build:done', () => { win.loadURL(_NUXT_URL_) }) } else { return win.loadURL(_NUXT_URL_) } } app.on('ready', newWin) app.on('window-all-closed', () => app.quit()) app.on('activate', () => win === null && newWin())