|
|
@ -0,0 +1,57 @@ |
|
|
|
/* |
|
|
|
** 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()) |