|
|
- /*
- ** 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())
|