Почему плагин gulp работает некорректно, когда его вызывает watch?

Не уверен, это специфика плагина или вообще gulp'а. В общем, я использую gulp-bem.
Я навесил слежку за нужными файлами:
gulp.task('watch', ['build'], function() {
    return watch([
        'blocks/**/*.styl',
        'blocks/**/*.js',
        'blocks/**/*.deps.js'
    ], function () {
        return gulp.start('build');
    });
});


Когда я меняю `.js` или `.styl`, то все пересобирается корректно. `build` зависит от задач: `deps` и `css`. Делаю так, как это рекомендуется в gulp-bem-stub. Но если я меняю `.deps.js` файл, исключая какой-то блок из сборки, он все равно приходит. Если я совершу там синтаксическую ошибку, то консоль не выдаст краша, так-как, видимо, зависимости повторно не сканируются. Хотя идет явный вызов. Если же я ручками пропишу `gulp build`, то все работает. Если вместо меня это делает "смотритель", то получается не тот эффект, который хотелось бы.

Докатился уже до такого:
var bem, deps, levels = [
    'blocks/common',
    'blocks/desktop',
    'bundles'
];
gulp.task('deps', function (done) {
    delete require.cache[require.resolve('gulp-bem')];
    bem = require('gulp-bem');
    deps = bem(levels, {
        elem: '__',
        mod: '--'
    }).deps('bundles/profile');
    
    return done();
});
  • Вопрос задан
  • 246 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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