Я пытаюсь настроить задачу serve
, которая будет выполнять следующие действия:
- Вызовите задачу
watch
, чтобы отслеживать любые изменения в источнике.(задача наблюдения вызывает задачу build
, которая встраивает приложение в папку «build») - Запустите приложение с помощью Nodemon (gulp-nodemon)
- Если произойдет изменение источника - перестройтеприложение и перезапустите nodemon
Пока что я написал следующие задачи:
gulp.task('build', gulp.series(['lint'], () => {
del.sync(['./build/**/*.*']);
const tsCompile = gulp.src('./src/**/*.ts')
.pipe(gulpSourcemaps.init())
.pipe(project());
return tsCompile.js.pipe(gulpSourcemaps.write({
sourceRoot: file => path.relative(path.join(file.cwd, file.path), file.base)
}))
.pipe(gulp.dest('./build/'));
}));
gulp.task('watch', gulp.series(['build'], () => {
gulp.watch('./src/**/*.ts', gulp.series(['build']));
}));
gulp.task('serve', gulp.series(['watch'], () => {
return gulpNodemon({
script: './build/index.js',
watch: './build/'
});
}));
Текущее поведение задач:
- Я запускаю приложение, набирая
gulp serve
- Вызывается задача
watch
, и она работает как положено - Nodemon не запускается, и процесс застревает в задаче
watch
.Если я изменю любой исходный код, будет вызвана задача watch
.
В основном Nodemon не запускается, и работает только задача watch
.
IЯ не могу понять, почему происходит следующее поведение, и я хочу спросить, знает ли кто-нибудь, в чем может быть проблема?