diff --git a/config/webpack.common.js b/config/webpack.common.js index 4b7d16ce..822cec21 100644 --- a/config/webpack.common.js +++ b/config/webpack.common.js @@ -17,7 +17,7 @@ const ExtractTextPlugin = require('extract-text-webpack-plugin'); const METADATA = { title: 'ng2-admin - Angular 2 Admin Template', description: 'Free Angular 2 and Bootstrap 4 Admin Template', - baseUrl: '/', + baseUrl: './', isDevServer: helpers.isWebpackDevServer() }; diff --git a/package.json b/package.json index 553798cf..abf7d77d 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,8 @@ "compression-webpack-plugin": "^0.3.1", "es6-promise": "^3.1.2", "es6-shim": "^0.35.0", - "es7-reflect-metadata": "^1.6.0" + "es7-reflect-metadata": "^1.6.0", + "electron": "^1.3.4" }, "scripts": { "rimraf": "rimraf", @@ -138,7 +139,8 @@ "start": "npm run server:dev", "start:hmr": "npm run server:dev:hmr", "version": "npm run build", - "postversion": "git push && git push --tags" + "postversion": "git push && git push --tags", + "electron": "electron ./src/electron/main.js" }, "repository": { "type": "git", diff --git a/src/electron/main.js b/src/electron/main.js new file mode 100644 index 00000000..2244d0bc --- /dev/null +++ b/src/electron/main.js @@ -0,0 +1,53 @@ +const electron = require('electron') +// Module to control application life. +const app = electron.app +// Module to create native browser window. +const BrowserWindow = electron.BrowserWindow + +// 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 mainWindow + +function createWindow () { + // Create the browser window. + mainWindow = new BrowserWindow({width: 800, height: 600}) + + // and load the index.html of the app. + mainWindow.loadURL(`file://${__dirname}/../../dist/index.html`) + + // Open the DevTools. + mainWindow.webContents.openDevTools() + + // Emitted when the window is closed. + mainWindow.on('closed', function () { + // 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. + mainWindow = 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', function () { + // On OS X 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', function () { + // On OS X 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 (mainWindow === 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.