なんで受かったのか理解不能
非同期完了の通知を忘れていませんか?
これが私のセットアップです:
gulp.task('compile-ts', () => {
return tsProject.src(config.files.src.ts)
.pipe($.tap((file, t) => {
logVerbose('Compiling "' + file.path + "'");
}))
.pipe($.sourcemaps.init())
.pipe($.typescript(tsProject))
.pipe($.sourcemaps.write('./'))
.pipe($.chmod(755))
.pipe(gulp.dest(config.dist));
});
gulp.task('copy-assets', () => {
return gulp.src(config.files.src.css_html_js, { base: config.src })
.pipe($.tap((file, t) => {
logVerbose('Copying "' + getFileName(file.path) + "'");
}))
.pipe($.chmod(755))
.pipe(gulp.dest(config.dist));
});
gulp.task('browser-sync', (done) => {
browserSync.init({
"port": 3000,
"startPath": "dist/index.html",
"browser": "chrome",
"logLevel": "silent",
"server": {
"middleware": {
"0": null
}
}
}, done);
process.on('exit', () => {
browserSync.exit();
});
})
gulp.task('watch', gulp.parallel(() => {
gulp.watch(config.files.ts, gulp.series('compile-ts'));
}, () => {
gulp.watch(config.files.css_html_js, gulp.series('copy-assets'));
}));
gulp.task('serve-dist', gulp.parallel('watch', 'browser-sync'));
スタックトレースによると、問題のある行は
gulp.watch(config.files.ts, gulp.series('compile-ts'));
watch
タスク内。タスクcompile-ts
は機能しており、完了を通知するのに十分なストリームを返します。しかし、とにかくエラーが発生するのはなぜですか?
これはgulp@4.0.0-alpha.2
。
編集:
watch
タスクを次のように変更します
gulp.task('watch', (done) => {
gulp.watch(config.files.css_html_js, gulp.series('copy-assets'));
gulp.watch(config.files.ts, gulp.series('compile-ts'));
done();
});
もうエラーは発生しませんが、タスクは 4 ミリ秒以内に終了し、何もしません。パーツを削除するdone
と、同じエラーが再び発生します。
EDIT2:問題を特定できるように、タスクをさらに分割しました。
gulp.task('watch-ts', () => {
return gulp.watch(config.files.ts, gulp.series('compile-ts'));
});
gulp.task('watch-assets', () => {
return gulp.watch(config.files.css_html_js, gulp.series('copy-assets'));
});
gulp.task('watch', gulp.parallel('watch-ts', 'watch-assets'));
今watch-ts
、watch-assets
両方でそのエラーメッセージが表示されます。私が知る限り、どちらもストリームを返します。