gulp.watch
命令ごとに異なる結果が得られwatch
ます タスクを実行してファイルを変更すると.html
、すべてが正しく機能します (以下に定義するタスク)
しかし、他のファイル (.coffee、.less など) を変更すると、次のエラーが発生します。
stream.js:94
throw er; // Unhandled stream error in pipe.
^
Error: write after end
at writeAfterEnd (/Users/oclement/Documents/phoenix/MedifastCerBrokenDown/MedifastWeb/AppSource/node_modules/gulp-filter/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:145:12)
at Transform.Writable.write (/Users/oclement/Documents/phoenix/MedifastCerBrokenDown/MedifastWeb/AppSource/node_modules/gulp-filter/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:193:5)
at Stream.ondata (stream.js:51:26)
at Stream.emit (events.js:95:17)gulp.watch`
監視タスク
gulp.task('watch', function() {
isWatching = true;
run('build', 'index', function() {
g.util.log(g.util.colors.green('Starting to Watch'));
gulp.watch('./app/**/*.html', ['templates']);
gulp.watch('./app/**/*.coffee', ['phnxjs']);
...
});
});
テンプレート タスク
gulp.task('templates', function(done) {
g.util.log(g.util.colors.green('---TEMPLATES---'));
sourceStreams.templates()
.pipe(buildWatchPipe()())
.pipe(g.ngHtml2js(options.templates))
.pipe(g.concat(destinations.templates.bundleName))
.pipe(g.if(isProd, transformScriptsProd()))
.pipe(destinations.templates.target())
.pipe(g.if(isWatching, g.livereload()));
done();
});
Phnxjs タスク
gulp.task('phnxjs', function(done) {
g.util.log(g.util.colors.green('---PHNXJS---'));
var wrapException = g.filter('!**/tags-input.js');
sourceStreams.phoenixScripts()
.pipe(buildWatchPipe()())
.pipe(filters.coffee)
.pipe(g.coffee(options.coffee))
.on('error', g.util.log)
.pipe(filters.coffee.restore())
.pipe(wrapException)
.pipe(iffeWrapper())
.pipe(wrapException.restore())
.pipe(g.if(!isProd, g.angularFilesort()))
.pipe(g.if(isProd, transformScriptsProd()))
.pipe(g.if(isProd, g.concat(destinations.phoenixScripts.bundleName)))
.pipe(destinations.phoenixScripts.target())
.pipe(g.if(isWatching, g.livereload()));
done();
});