From 1eb9175f82b412020d5a11ae6c6a3390b342c77d Mon Sep 17 00:00:00 2001 From: tigerbot Date: Thu, 20 Apr 2017 12:01:35 -0600 Subject: [PATCH] copied basic example electron app code --- .gitignore | 3 +++ README.md | 17 ++++++++++++++++ index.html | 13 ++++++++++++ index.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 18 +++++++++++++++++ 5 files changed, 108 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 index.html create mode 100644 index.js create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c5ea0d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +dist/ +npm-debug.log diff --git a/README.md b/README.md new file mode 100644 index 0000000..6151392 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +Example of a simple `Electon` app that uses the features described as +["sexy" by the webtorrent team](https://blog.dcpos.ch/how-to-make-your-electron-app-sexy). + +*Starting the app without installation* +```bash +npm install +npm start +``` + +*Creating the .deb* +```bash +npm install +npm run build +npm run deb64 +``` + +The installer will be placed in `dist/installers` diff --git a/index.html b/index.html new file mode 100644 index 0000000..8d710f0 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + Hello World! + + +

Hello World!

+ We are using node , + Chrome , + and Electron . + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..1f2e3b9 --- /dev/null +++ b/index.js @@ -0,0 +1,57 @@ +var electron = require('electron'); +var app = electron.app; +var BrowserWindow = electron.BrowserWindow; +var path = require('path'); +var url = require('url'); + +// 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. +var win; + +function createWindow () { + // Create the browser window. + win = new BrowserWindow({width: 800, height: 600}); + + // and load the index.html of the app. + win.loadURL(url.format({ + pathname: path.join(__dirname, 'index.html'), + protocol: 'file:', + slashes: true + })); + + // Open the DevTools. + win.webContents.openDevTools(); + + // Emitted when the window is closed. + win.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. + win = 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 macOS 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 macOS 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 (win === 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. diff --git a/package.json b/package.json new file mode 100644 index 0000000..f9a4f4b --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "electron-demo", + "version": "0.0.1", + "description": "Demo Electron app to use all the 'sexy' features", + "maintainers": [ + "seth.gibelyou@daplie.com" + ], + "scripts": { + "start": "electron .", + "build": "electron-packager . --platform linux --arch x64 --out dist/", + "deb64": "electron-installer-debian --src dist/electron-demo-linux-x64/ --dest dist/installers/ --arch amd64" + }, + "devDependencies": { + "electron": "^1.6.5", + "electron-installer-debian": "^0.5.1", + "electron-packager": "^8.6.0" + } +}