|
const {app, BrowserWindow, Menu, protocol, ipcMain} = require('electron'); |
|
const log = require('electron-log'); |
|
const {autoUpdater} = require("electron-updater"); |
|
|
|
//------------------------------------------------------------------- |
|
// Logging |
|
// |
|
// THIS SECTION IS NOT REQUIRED |
|
// |
|
// This logging setup is not required for auto-updates to work, |
|
// but it sure makes debugging easier :) |
|
//------------------------------------------------------------------- |
|
autoUpdater.logger = log; |
|
autoUpdater.logger.transports.file.level = 'info'; |
|
log.info('App starting...'); |
|
|
|
//------------------------------------------------------------------- |
|
// Define the menu |
|
// |
|
// THIS SECTION IS NOT REQUIRED |
|
//------------------------------------------------------------------- |
|
let template = [] |
|
if (process.platform === 'darwin') { |
|
// OS X |
|
const name = app.getName(); |
|
template.unshift({ |
|
label: name, |
|
submenu: [ |
|
{ |
|
label: 'About ' + name, |
|
role: 'about' |
|
}, |
|
{ |
|
label: 'Quit', |
|
accelerator: 'Command+Q', |
|
click() { app.quit(); } |
|
}, |
|
] |
|
}) |
|
} |
|
|
|
|
|
//------------------------------------------------------------------- |
|
// Open a window that displays the version |
|
// |
|
// THIS SECTION IS NOT REQUIRED |
|
// |
|
// This isn't required for auto-updates to work, but it's easier |
|
// for the app to show a window than to have to click "About" to see |
|
// that updates are working. |
|
//------------------------------------------------------------------- |
|
let win; |
|
|
|
function sendStatusToWindow(text) { |
|
log.info(text); |
|
win.webContents.send('message', text); |
|
} |
|
function createDefaultWindow() { |
|
win = new BrowserWindow(); |
|
win.webContents.openDevTools(); |
|
win.on('closed', () => { |
|
win = null; |
|
}); |
|
win.loadURL(`file://${__dirname}/version.html#v${app.getVersion()}`); |
|
return win; |
|
} |
|
autoUpdater.on('checking-for-update', () => { |
|
sendStatusToWindow('Checking for update...'); |
|
}) |
|
autoUpdater.on('update-available', (ev, info) => { |
|
sendStatusToWindow('Update available.'); |
|
}) |
|
autoUpdater.on('update-not-available', (ev, info) => { |
|
sendStatusToWindow('Update not available.'); |
|
}) |
|
autoUpdater.on('error', (ev, err) => { |
|
sendStatusToWindow('Error in auto-updater.'); |
|
}) |
|
autoUpdater.on('download-progress', (ev, progressObj) => { |
|
sendStatusToWindow('Download progress...'); |
|
}) |
|
autoUpdater.on('update-downloaded', (ev, info) => { |
|
sendStatusToWindow('Update downloaded; will install in 5 seconds'); |
|
}); |
|
app.on('ready', function() { |
|
// Create the Menu |
|
const menu = Menu.buildFromTemplate(template); |
|
Menu.setApplicationMenu(menu); |
|
|
|
createDefaultWindow(); |
|
}); |
|
app.on('window-all-closed', () => { |
|
app.quit(); |
|
}); |
|
|
|
//------------------------------------------------------------------- |
|
// Auto updates |
|
// |
|
// For details about these events, see the Wiki: |
|
// https://github.com/electron-userland/electron-builder/wiki/Auto-Update#events |
|
// |
|
// The app doesn't need to listen to any events except `update-downloaded` |
|
// |
|
// Uncomment any of the below events to listen for them. Also, |
|
// look in the previous section to see them being used. |
|
//------------------------------------------------------------------- |
|
// autoUpdater.on('checking-for-update', () => { |
|
// }) |
|
// autoUpdater.on('update-available', (ev, info) => { |
|
// }) |
|
// autoUpdater.on('update-not-available', (ev, info) => { |
|
// }) |
|
// autoUpdater.on('error', (ev, err) => { |
|
// }) |
|
// autoUpdater.on('download-progress', (ev, progressObj) => { |
|
// }) |
|
autoUpdater.on('update-downloaded', (ev, info) => { |
|
// Wait 5 seconds, then quit and install |
|
// In your application, you don't need to wait 5 seconds. |
|
// You could call autoUpdater.quitAndInstall(); immediately |
|
setTimeout(function() { |
|
autoUpdater.quitAndInstall(); |
|
}, 5000) |
|
}) |
|
|
|
app.on('ready', function() { |
|
autoUpdater.checkForUpdates(); |
|
}); |
manage to resolve, but in another way. now it's working. a vue-config.js was created, in that file it was put all the configuration of the build. thank you very much for your attention.
I'll leave the link to the code, in case any future doubt.
https://github.com/brennomarques/skeleton-vue-electron-update