在将 scss 文件编译为 css 之前,我使用了 gulp-sass-lint
。我在这里面临的问题是,即使 scss 中存在 linting 错误,scss 也会被编译为 css。
如果出现 linting 错误,如何停止 scss 编译成 css。
这是我的 gulpfile。
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var cssmin = require('gulp-cssmin');
var rename = require('gulp-rename');
var sassLint = require('gulp-sass-lint');
// Static Server + watching scss/html files
gulp.task('serve', ['sass-lint'], function() {
browserSync.init({
server: "./app"
});
gulp.watch("app/scss/*.scss", ['sass-lint']);
gulp.watch("app/*.html").on('change', browserSync.reload);
gulp.watch("app/js/*.js").on('change', browserSync.reload);
});
// sass-lint check
gulp.task('sass-lint', function () {
return gulp.src('app/scss/**/*.s+(a|c)ss')
.pipe(sassLint())
.pipe(sassLint.format())
.pipe(sassLint.failOnError())
.pipe(sass().on('error',sass.logError))
.pipe(gulp.dest("app/css"))
.pipe(sourcemaps.init())
.pipe(cssmin())
.pipe(sourcemaps.write())
.pipe(rename({
suffix:'.min'
}))
.pipe(gulp.dest('app/css'))
.pipe(browserSync.stream());
});
gulp.task('default', ['serve']);
这是我的 package.json 文件
{
"name": "gulpscss_starterkit",
"version": "1.0.0",
"description": "",
"main": "gulpfile.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "gulp"
},
"author": "",
"license": "ISC",
"devDependencies": {
"browser-sync": "^2.22.0",
"gulp": "^3.9.1",
"gulp-cssmin": "^0.2.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.1.0",
"gulp-sass-lint": "^1.3.4",
"gulp-sourcemaps": "^2.6.3"
}
}
最佳答案
我会将 sassLint 放入它自己的任务中。
// Static Server + watching scss/html files
gulp.task('serve', ['sass'], function() {
...
// sass
gulp.task('sass', ['sass-lint'], function () {
return gulp.src('app/scss/**/*.s+(a|c)ss')
.pipe(sass().on('error',sass.logError))
.pipe(gulp.dest("app/css"))
.pipe(sourcemaps.init())
.pipe(cssmin())
.pipe(sourcemaps.write())
.pipe(rename({
suffix:'.min'
}))
.pipe(gulp.dest('app/css'))
.pipe(browserSync.stream());
});
// sass-lint check
gulp.task('sass-lint', function () {
return gulp.src('app/scss/**/*.s+(a|c)ss')
.pipe(sassLint())
.pipe(sassLint.format())
.pipe(sassLint.failOnError())
});
关于css - 即使存在 lint 错误,Gulp 也符合 Sass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48761074/