From 3cd4dd1341a1eedada8e69670a0273ba30349e8f Mon Sep 17 00:00:00 2001 From: Yuya Ochiai Date: Sat, 24 Oct 2015 18:47:37 +0900 Subject: [PATCH] =?UTF-8?q?electron-connect=E3=82=92=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E3=81=97=E3=81=9FLiveReload?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gulpfile.js | 15 ++++++++++++++- package.json | 4 ++++ src/main.js | 8 ++++++++ src/package.json | 5 ++++- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 694a5184..d0dfa14b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,10 +2,13 @@ var gulp = require('gulp'); var prettify = require('gulp-jsbeautifier'); +var electron = require('electron-connect').server.create({ + path: './src' +}); var packager = require('electron-packager'); var packageJson = require('./src/package.json'); -var sources = ['**/*.js', '**/*.css', '**/*.html', '!node_modules/**', '!release/**']; +var sources = ['**/*.js', '**/*.css', '**/*.html', '!**/node_modules/**', '!release/**']; gulp.task('prettify', function() { gulp.src(sources) @@ -24,6 +27,15 @@ gulp.task('prettify', function() { .pipe(gulp.dest('.')); }); +gulp.task('serve', function() { + var options = ['--livereload']; + electron.start(options); + gulp.watch(sources, function() { + electron.broadcast('stop'); + electron.restart(options); + }); +}); + gulp.task('package', function() { packager({ dir: './src', @@ -32,6 +44,7 @@ gulp.task('package', function() { arch: 'all', version: '0.33.6', out: './release', + prune: true, overwrite: true }, function(err, appPath) { if (err) { diff --git a/package.json b/package.json index 68d80e58..08495000 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,11 @@ "main": "main.js", "author": "Yuya Ochiai", "license": "MIT", + "scripts": { + "postinstall": "cd src && npm install" + }, "devDependencies": { + "electron-connect": "^0.3.3", "electron-packager": "^5.1.0", "gulp": "^3.9.0", "gulp-jsbeautifier": "^1.0.1" diff --git a/src/main.js b/src/main.js index 17322a32..b94f4f5b 100644 --- a/src/main.js +++ b/src/main.js @@ -5,6 +5,14 @@ var BrowserWindow = require('browser-window'); // Module to create native browse var Menu = require('menu'); var appMenu = require('./app-menu'); +var client = null; +if (process.argv.indexOf('--livereload') > 0) { + client = require('electron-connect').client.create(); + client.on('stop', function() { + app.quit(); + }); +} + // 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 mainWindow = null; diff --git a/src/package.json b/src/package.json index d7879911..0057b3de 100644 --- a/src/package.json +++ b/src/package.json @@ -4,5 +4,8 @@ "description": "", "main": "main.js", "author": "Yuya Ochiai", - "license": "MIT" + "license": "MIT", + "devDependencies": { + "electron-connect": "^0.3.3" + } }