stylelint + gulp не работает для подпапок
Я использую gulp 3.9.1 и stylelint 7.6.0 для SCSS линтинга. ОС это Ubuntu.
Связанная часть моей конфигурации gulp выглядит следующим образом:
var postcss = require('gulp-postcss');
var stylelint = require('stylelint');
var postcssReporter = require('postcss-reporter');
gulp.task('styles', function() {
...
var lintProcessors = [
stylelint(),
postcssReporter({ clearMessages: true })
];
gulp.src('app/assets_src/styles/**/*.scss')
.pipe(postcss(lintProcessors, {syntax: scssSyntax}));
...
});
Эта проблема:
Stylelint отлично работает для таких файлов, как app/assets_src/styles/file.scss
но он не обрабатывает файлы в подпапках, таких как:app/assets_src/styles/blocks/home/file.scss
Также странно то, что в некоторых очень редких случаях он запускается один раз для таких вложенных файлов, но затем перестает работать снова.
Я пытался использовать такие пути:app/assets_src/styles/**/**/*.scss
/app/assets_src/styles/**/*.scss
'./app/assets_src/styles/**/**/*.scss'
Но не повезло.
Также с помощью этой команды cli: stylelint 'app/assets_src/styles/**/*.scss'
хорошо работает и обрабатывает подкаталоги. Так что, возможно, проблема связана с плагином gulp-postcss.
1 ответ
Ответ таков: вам всегда нужно возвращать поток из задачи gulp, таким образом gulp понимает, когда задача завершена.
Документы: https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support
Тема обсуждения проблемы: https://github.com/postcss/gulp-postcss/issues/107