gulp を利用して Electron で LiveReaload を行う
gulp を利用して Electron で LiveReaload を行うことができます。
[ディレクトリ構成]
. |--gulpfile.js |--index.html |--main.js |--package.json
[gulpfile.js]
var gulp = require('gulp'); var electron = require('electron-connect').server.create(); // Electron起動 gulp.task('start', function(){ // Electron開始 electron.start(); // ファイルの監視 // BrowserProcess が読み込むファイルが変更されたら Restart gulp.watch(['main.js'], electron.restart); // RendererProcess が読み込むファイルが変更されたら Reload gulp.watch(['./*.{html,js,css}'], electron.reload); });
[index.html]
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Hello World!</title> </head> <body> <!-- gulp 側へ建てた server へ接続する --> <script>require('electron-connect').client.create()</script> <h1>Hello World</h1> We are using node <script>document.write(process.versions.node)</script>, Chromium <script>document.write(process.versions.chrome)</script>, and Electron <script>document.write(process.versions.electron)</script>. </body> </html>
[main.js]
'use strict'; const electron = require('electron'); const app = electron.app; const BrowserWindow = electron.BrowserWindow; let mainWindow; function createWindow () { mainWindow = new BrowserWindow({width: 800, height: 600}); mainWindow.loadURL('file://' + __dirname + '/index.html'); mainWindow.webContents.openDevTools(); mainWindow.on('closed', function() { mainWindow = null; }); } app.on('ready', createWindow); app.on('window-all-closed', function () { if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', function () { if (mainWindow === null) { createWindow(); } });
[package.json]
{ "name": "livereload", "main": "main.js", "devDependencies": { "electron-connect": "^0.3.7", "gulp": "^3.9.1" } }
インストール
$ npm install
Electron の起動
$ gulp start
これで直下の .html
や .js
が更新された場合に Electron がリロードされ、main.js
が更新されたら Electron が再起動するようになります。
gulp べんり。