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

Другие вопросы по тегам