GulpJS больше не может правильно найти задачу в списке (Gulp 4) - PullRequest
0 голосов
/ 03 октября 2019

Мой файл gulp выглядит примерно так (упрощенно)

function copyAssets () {
  return src(paths.assets, { base: './' })
    .pipe(cache('asset-files'))
    .pipe(dest(paths.build))
}

// Some more task functions

const build = parallel(copyAssets, brewCoffee, buildTypescript)

module.exports = { build, watch: series(build, watchFiles) }

Но теперь, когда я перечисляю его, он выглядит так:

[15:29:30] Tasks for .....
[15:29:30] ├─┬ <parallel>
[15:29:30] │ └─┬ <parallel>
[15:29:30] │   ├── copyAssets
[15:29:30] │   ├── brewCoffee
[15:29:30] │   └── buildTypescript
[15:29:30] └─┬ <series>
[15:29:30]   └─┬ <series>
[15:29:30]     ├─┬ <parallel>
[15:29:30]     │ ├── copyAssets
[15:29:30]     │ ├── brewCoffee
[15:29:30]     │ └── buildTypescript
[15:29:30]     └── watchFiles

И запуск таких вещей, как gulp build, будетскажем, что задача не существует.

Если я обертываю функцию series / paralel в анонимную функцию, я вижу, что она появляется в списке (вот так)

const build = () => parallel(copyAssets, brewCoffee, buildTypescript)
module.exports = { build, watch: () => series(build, watchFiles) }

Но тогда, когдаработает gulp build Я получаю

Did you forget to signal async completion?

как ошибку.

Я знаю, что в какой-то момент это сработало (несколько месяцев назад). Но сейчас по какой-то причине этого больше нет. Если я запускаю gulp --version, вывод будет:

CLI version: 2.2.0
Local version: 4.0.0

edit: Хммм. Кажется, это работает

module.exports = { build: () => build(), watch: () => series(build, watchFiles)() }

Но я сомневаюсь, что именно так я и должен на самом деле делать эти вещи ...

edit2: Нет, все еще не работает, он работает сейчас и ждет завершения. И затем говорит ту же ошибку, что и раньше: The following tasks did not complete: build

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Попробуйте это:

var srcPaths = {
    app: [
        'wwwroot/app/**/*.ts'
    ],
    js: [
        'node_modules/core-js/client/shim.min.js',
        'node_modules/zone.js/dist/zone.js',
        'node_modules/reflect-metadata/Reflect.js',
        'node_modules/systemjs/dist/system.src.js',
        'node_modules/typescript/lib/typescript.js',
        'node_modules/ng2-bootstrap/bundles/ng2-bootstrap.min.js',
        'node_modules/moment/moment.js'
    ],
}

gulp.task('watch', function () {
    gulp.watch([srcPaths.app, srcPaths.js], gulp.series('js'));
});

Будет работать нормально. Наслаждайтесь!

0 голосов
/ 07 октября 2019

Когда я использовал параллель (очень кратко) в прошлом, мне приходилось ссылаться на него из глотка.

Например, изменение:

const build = () => parallel(copyAssets, brewCoffee, buildTypescript);

на:

const build = () => gulp.parallel(copyAssets, brewCoffee, buildTypescript);

То же самое с серией здесь:

module.exports = { build, watch: gulp.series(build, watchFiles) }
...