我使用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插件有关。
答案 0 :(得分: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