Прямые справочные задачи, не определенные перед использованием - PullRequest
1 голос
/ 07 марта 2019

Я использую несколько файлов с gulp@4, где основной gulpfile.js включает все остальные файлы в каталоге ./tasks/. Мы используем пакет npm gulp-hub для включения нескольких gulpfiles в каталог ./tasks/. Однако мы получаем следующее сообщение об ошибке при вызове tasks.

Перенаправленные задачи 'clean-minify-js` не определены перед использованием

Как мы можем включить несколько gulpfiles в основной gulpfile.js, чтобы мы могли звонить tasks?

Ток gulpfile.js:

'use strict';

var gulp = require('gulp'),
    HubRegistry = require('gulp-hub');
    
var genericHub = new HubRegistry('./tasks/scripts.js');
gulp.registry(genericHub);

var watchers = function(done) {
  gulp.watch('src/*.js', gulp.parallel('clean-minify-js'));
  done();
}

gulp.task('watch', gulp.series(watchers));

Ток ./tasks/scripts.js

'use strict';

var gulp = require('gulp'),
    clean = require('gulp-clean'),
    uglify = require('gulp-uglify');
    
gulp.task('clean-scripts', function() {
  return gulp.src(dest.js)
             .pipe(clean({read:false, force: true});
});

gulp.task('minify-js', gulp.series('clean-scripts', function() {
   gulp.src(src.js)
       .pipe(uglify())
       .pipe(gulp.dest(dest.js));
}));

gulp.task('clean-minify-js', gulp.series('minify-js'));

Структура папок:

  • some/path/gulpfile.js
  • some/path/tasks/scripts.js

1 Ответ

0 голосов
/ 07 марта 2019

Чтобы решить проблему, мне пришлось сделать следующее.

  • Используйте пакет require-dir , чтобы включить все файлы в каталог ./tasks/.
  • конвертирует задачи, которые были разработаны для gulp@3.9.1, в функции для gulp@4
  • используйте gulp.series, чтобы настроить функции для работы в нужном нам порядке

gulpfile.js

'use strict';

var gulp = require('gulp'),
    requireDir = require('require-dir');
requireDir('./tasks/');    

var watchers = function(done) {
  gulp.watch('src/*.js', gulp.parallel('clean-minify-js'));
  done();
}

gulp.task('watch', gulp.series(watchers));

. / Задачи / scripts.js

'use strict';

var gulp = require('gulp'),
    clean = require('gulp-clean'),
    uglify = require('gulp-uglify');

function cleanScripts() {
  return gulp.src(dest.js)
             .pipe(clean({read:false, force: true});
}

function minJs() {
  return gulp.src(src.js)
       .pipe(uglify())
       .pipe(gulp.dest(dest.js));
}

gulp.task('clean-minify-js', gulp.series(cleanScripts, minJs));
...