У меня странная ошибка при использовании gulp 4, и я просто не могу понять, в чем проблема, на мой взгляд, это не имеет абсолютно никакого смысла. Я использую Gulp 4 и Babel, поэтому это gulpfile.babel. js.
Отрывок с проблемными c частями:
const root = 'src/';
const paths = {
dist: './dist/',
scripts: [
`${root}/app/**/*.js`,
`!${root}/app/**/*.js`
],
tests: `${root}/app/**/*.spec.js`,
styles: {
src: `${root}/sass/**/*.scss`,
dest: './dist/css/'
},
templates: `${root}/app/**/*.html`
};
function watchScripts() {
gulp.watch([
paths.templates,
...paths.scripts
], scripts);
}
const watchFiles = gulp.series(scripts, gulp.parallel(watchStyles, watchScripts));
function scripts() {
return gulp.src([
`!${root}/app/**/*.spec.js`,
`${root}/app/**/*.module.js`,
'./templates.js',
...paths.scripts
])
.pipe(sourcemaps.init())
.pipe(wrap('(function(angular){\n\'use strict\';\n<%= contents %>})(window.angular);'))
.pipe(concat('bundle.js'))
.pipe(ngAnnotate())
.pipe(gulpif(argv.deploy, uglify()))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(paths.dist + 'js/'));
}
export {
clean,
copy,
scripts,
templates,
watchFiles
}
Проблема теперь в внутри задачи "watchFiles", в частности watchScripts-Part. Я без проблем могу запустить задачу «скрипты». Я могу запустить задачу watchFiles без каких-либо проблем и изменить что-то в html, которое запускает «скрипты» задачи. НО: Если я инициирую изменения, редактируя файлы JavaScript (paths.scripts), возникает следующая ошибка:
> watchScripts: Starting 'scripts'...
> watchScripts: 'scripts' errored after 448 μs
> watchScripts: TypeError: Invalid attempt to spread non-iterable instance.
> watchScripts: In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
> watchScripts: at _nonIterableSpread (c:\Users\Kleiber\projects\trakyourtv\gulpfile.babel.js:50:39)
> watchScripts: at _toConsumableArray (c:\Users\Kleiber\projects\trakyourtv\gulpfile.babel.js:48:131)
> watchScripts: at scripts (c:\Users\Kleiber\projects\trakyourtv\/gulpfile.babel.js:104:10)
> watchScripts: at bound (domain.js:419:14)
> watchScripts: at runBound (domain.js:432:12)
> watchScripts: at asyncRunner (c:\Users\Kleiber\projects\trakyourtv\node_modules\async-done\index.js:55:18)
> watchScripts: at processTicksAndRejections (internal/process/task_queues.js:75:11)
Это абсолютно не имеет для меня смысла. Задача сценариев отлично работает сама по себе или запускается изменениями в html, как упоминалось выше. Почему изменения в файлах JS приводят к этой ошибке?