【问题标题】:stylelint + gulp doesn't work for subfoldersstylelint + gulp 不适用于子文件夹
【发布时间】:2017-04-12 19:56:59
【问题描述】:

我使用 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 插件有关。

【问题讨论】:

  • 你能用gulp-debug之类的东西来确认gulp正在处理哪些文件吗?
  • 感谢您的回复。 gulp-debug 显示每个文件都被传递给 stylelint。但只有其中一些正在处理中。我在这里做了一个问题报告:github.com/postcss/gulp-postcss/issues/107 看看如何解决。

标签: gulp stylelint


【解决方案1】:

答案是 - 你总是必须从 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多