Не уверен, это специфика плагина или вообще 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();
});