css - 即使存在 lint 错误,Gulp 也符合 Sass

标签 css gulp gulp-watch gulp-sass

在将 scss 文件编译为 css 之前,我使用了 gulp-sass-lint。我在这里面临的问题是,即使 scss 中存在 linting 错误,scss 也会被编译为 css。

如果出现 linting 错误,如何停止 scss 编译成 css。

This is My Folder Structure

这是我的 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/

相关文章:

html - Angular4 - 滚动到 anchor

css - 使用流体布局是否明智?

css - PostCSS:PxToRem 插件

node.js - 将 gulp-watch 与 babel.js 结合使用

javascript - 使用 Javascript 验证 HTML 下拉菜单?

javascript - 在表单字段外单击时隐藏自动填充下拉菜单

typescript - 我如何丑化我的 AngularJS 2 Typescript 应用程序文件并使用 Gulp 连接到生产版本

node.js - require ('child_process' 中的错误)函数未定义 - TypeScript

Gulp 'watch' 使用 BrowserSync 迁移到 Gulp 4 后未拾取更改

gulp - 如何在 PM2 中使用 Gulp?