Задать вопрос

Почему не подгружаются Gulp-таски?

Решил я намедни переписать конфиг для Галла. И все сломалось.

Вкратце: такси лежат в /tasks, файл gulpfile.babel.js работает через Бабель.
Галп при запуске gulp build выдает ошибку:
AssertionError [ERR_ASSERTION]: Task never defined: clean
    at getFunction (/Users/vovaspace/dev/rr-project/node_modules/undertaker/lib/helpers/normalizeArgs.js:15:5)
    at map (/Users/vovaspace/dev/rr-project/node_modules/arr-map/index.js:20:14)
    at normalizeArgs (/Users/vovaspace/dev/rr-project/node_modules/undertaker/lib/helpers/normalizeArgs.js:22:10)
    at Gulp.series (/Users/vovaspace/dev/rr-project/node_modules/undertaker/lib/series.js:13:14)
    at Object.<anonymous> (/Users/vovaspace/dev/rr-project/tasks/build.js:3:25)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at loader (/Users/vovaspace/dev/rr-project/node_modules/babel-register/lib/node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/vovaspace/dev/rr-project/node_modules/babel-register/lib/node.js:154:7)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)

Тут ошибка на clean, но если его убрать, ошибка будет на следующем таске. При этом отдельные таски запускаются нормально.

Файл gulpfile.babel.js
const requireDir = require('require-dir');
requireDir('tasks');


tasks/build.js
import gulp from 'gulp';

gulp.task('build', gulp.series(
  'clean',
  'styles',
  'templates',
  'scripts'
));


При этом если переименовать build.js в zzz.js (то есть сделать последним по алфавиту) все работает. Не может же быть проблема в порядке файлов в папке?
Куда копать?
  • Вопрос задан
  • 358 просмотров
Подписаться 1 Средний 8 комментариев
Пригласить эксперта
Ответы на вопрос 2
@inzeppelin
Не может же быть проблема в порядке файлов в папке?


Может. require-dir импортирует файлы в алфавитном порядке.
Ответ написан
@notnlwns Автор вопроса
Решил вопрос так:
import './tasks/clean';
import './tasks/fonts';
import './tasks/images';
import './tasks/scripts';
import './tasks/server';
import './tasks/sprites';
import './tasks/styles';
import './tasks/templates';

import './tasks/watch';
import './tasks/build';
import './tasks/deploy';
import './tasks/default';


Если есть решения лучше — предлагайте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы