electron-load
とgulp
でjsx
の変更を即時反映する。
hot reload
とかlive reload
で検索すると、2つのモジュールをよく目にした。
この2つ。前者は、gulp
でelectron
を実行するという感じで書かれていた。
実行方法を変えるのは少し抵抗感があるので、main.js
に追記するだけで済むという後者を選んだ。
そんな理由で使ってみたelectron-reload
だが、gulp watch
とも連携してくれる(連携というかchokidar
インスタンスを渡すだけ)ようで、babel
を使ったreact
+jsx
のjs
へのトランスパイルもホットリロードできた。
導入する
npm install -D electron-reload
するだけ。あとは、electron
実行時のスクリプトに少し追記する。
// main.js
...
const gulpscript = require('../../gulpfile');
const appRoot = path.dirname(path.dirname(__dirname));
require('electron-reload')(appRoot, {
electron: path.join(appRoot, 'node_modules', '.bin', 'electron'),
chokidar: gulpscript.watch(),
});
...
// gulpfile.js
var gulp = require('gulp');
...
function watch() {
// これが`chokidar`インスタンスを返す
return gulp.watch(paths.babel.src, transpileByBabel);
}
// used on electron-reload at src/main/main.js
exports.watch = watch;
...
実行する
上の設定がうまくいけば、いつも通り、npm start
するだけでいける。jsx
の文言を変えてみるとリロードされた。
コメント