0

我使用 gulp 3.9.1 和 stylelint 7.6.0 进行 SCSS linting。操作系统是 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 插件有关。

4

1 回答 1

0

答案是——你总是必须从 gulp 任务中返回一个流,这样 gulp 可以理解任务何时终止。

文档:https ://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support

问题讨论线程:https ://github.com/postcss/gulp-postcss/issues/107#issuecomment-267168310

于 2016-12-14T21:58:25.457 回答