sasstools / gulp-sass-lint

Gulp plugin for Sass Lint
MIT License
115 stars 43 forks source link

Linting doesn't work if use import #86

Open 0FilipK opened 6 years ago

0FilipK commented 6 years ago

Hi, I'm trying to implement Sass-lint into my existing project. I have one main.scss file wherein is a lot of imports like:

@import 'mixins' @import 'variables' @import 'chunks/*'

etc.

and my task for gulp looks like:

gulp.task('json-css', () => {
    return gulp
        .src('front/styles/main.scss'})
        .pipe($.plumber())
        .pipe(sassGlob())
        .pipe(sassLint())
        .pipe(sassLint.format())
        .pipe(sassLint.failOnError())
        .pipe(
            $.sass
                .sync({
                    outputStyle: 'compressed',
                    precision: 10,
                    includePaths: ['.'],
                })
                .on('error', $.sass.logError)
        )
        .pipe(gulp.dest('assets/styles'))
});

but it seems to look like sass-lint is only linting main.scss ignoring imports.

Here is my .sass-lint.yml:

options:
  formatter: stylish
  merge-default-rules: false
files:
  include: 'front/styles/**/*.scss'
rules:
  # Extends
  extends-before-mixins: 1
  extends-before-declarations: 1
  placeholder-in-extend: 1

  # Mixins
  mixins-before-declarations: 1

  # Line Spacing
  one-declaration-per-line: 1
  empty-line-between-blocks: 1
  single-line-per-selector: 1

  # Disallows
  no-attribute-selectors: 0
  no-color-hex: 0
  no-color-keywords: 1
  no-color-literals: 1
  no-combinators: 0
  no-css-comments: 0
  no-debug: 1
  no-disallowed-properties: 0
  no-duplicate-properties: 0
  no-empty-rulesets: 1
  no-extends: 0
  no-ids: 0
  no-important: 1
  no-invalid-hex: 1
  no-mergeable-selectors: 1
  no-misspelled-properties: 1
  no-qualifying-elements: 1
  no-trailing-whitespace: 1
  no-trailing-zero: 1
  no-transition-all: 1
  no-universal-selectors: 0
  no-url-domains: 1
  no-url-protocols: 1
  no-vendor-prefixes: 0
  no-warn: 1
  property-units: 0

  # Nesting
  declarations-before-nesting: 1
  force-attribute-nesting: 1
  force-element-nesting: 1
  force-pseudo-nesting: 1

  # Name Formats
  class-name-format: 1
  function-name-format: 1
  id-name-format: 0
  mixin-name-format: 1
  placeholder-name-format: 1
  variable-name-format: 1

  # Style Guide
  attribute-quotes: 1
  bem-depth: 0
  border-zero: 1
  brace-style: 1
  clean-import-paths: 0
  empty-args: 1
  hex-length: 1
  hex-notation: 1
  indentation: 0
  leading-zero: 0
  max-line-length: 0
  max-file-line-count: 0
  nesting-depth: 1
  property-sort-order: 0
  pseudo-element: 0
  quotes: 1
  shorthand-values: 1
  url-quotes: 1
  variable-for-property: 1
  zero-unit: 1

  # Inner Spacing
  space-after-comma: 0
  space-before-colon: 1
  space-after-colon: 1
  space-before-brace: 1
  space-before-bang: 1
  space-after-bang: 1
  space-between-parens: 1
  space-around-operator: 1

  # Final Items
  trailing-semicolon: 1
  final-newline: 1

Any solutions? How to force sass-lint to read imports?

theenoahmason commented 6 years ago

@0filipk Your glob pattern does not include your partials.

build glob: .src('front/styles/*.scss'})

build all top level sass.

lint glob: .src('front/styles/**/*.scss'})

lint all sass.