web-dev-qa-db-fra.com

Est-ce que sass-lint ignore une certaine ligne?

J'utilise sass - peluche avec Gulp. Comment puis-je désactiver les avertissements pour un style particulier dans mon sass depuis la sortie de la console lint?

J'ai trouvé une question similaire mais j'utilise sass - peluche, pas scss - lint: scss-lint ignore une ligne particulière

C'est celui que j'utilise: https://www.npmjs.com/package/gulp-sass-lint

J'ai essayé quelques variantes basées sur le projet scss - lint:

// scss-lint:disable ImportantRule
// sass-lint:disable ImportantRule
// sass-lint:disable no-important

Juste pour être clair, je veux désactiver les avertissements pour un style spécifique dans mon SASS, pas globalement. J'utiliserai cela lorsque la chose qui déclenche l'avertissement est intentionnelle. Par exemple, je pourrais définir plusieurs styles d'arrière-plan afin que l'un puisse constituer un repli pour les anciens navigateurs. Mais actuellement, cela déclenche l'avertissement no-duplicate-properties.

44
Evanss

Désactiver par des commentaires

Mise à jour pour décembre 2016 conformément à la documentation ceci sera désormais possible avec la syntaxe suivante:

Désactive plus d'une règle pour l'ensemble du fichier

// sass-lint:disable border-zero, quotes

p {
  border: none; // No lint reported
  content: "hello"; // No lint reported
}

Désactive une règle pour une seule ligne

p {
  border: none; // sass-lint:disable-line border-zero
}

Désactive toutes les peluches dans un bloc (et tous les blocs contenus)

p {
  // sass-lint:disable-block border-zero
  border: none; // No result reported
}

Nouvelles informations avec la permission de commenter @IanRoutledge.

Cependant, avant, si vous souhaitez désactiver certaines règles, mais uniquement pour des blocs de code spécifiques et/ou des morceaux de le code. Autant que je peux dire à partir du code source sous-jacent, cela serait pas être possible avec sass-lint. J'ai également essayé quelques autres recherches et parcouru la base de code en général, mais je n'ai trouvé aucune indication selon laquelle la fonctionnalité que vous recherchez existe.

A titre de comparaison, cette requête pour le code source scss-lint le montre clairement est implémenté ici, d'une manière qui ne semble pas avoir de solution analogue dans le lib vous utilisez.

Désactiver via les config yml

Vous pouvez désactiver les règles en général cependant. Vous devez avoir un .sass-lint.yml fichier pour désactiver les avertissements.

Supposons que vous ayez ceci gulpfile.js:

'use strict';

var gulp = require('gulp'),
    sassLint = require('gulp-sass-lint');

gulp.task('default', [], function() {
  gulp.src('sass/*.scss')
    .pipe(sassLint())
    .pipe(sassLint.format())
    .pipe(sassLint.failOnError());
});

Et ça package.json:

{
  "devDependencies": {
    "gulp": "^3.9.0",
    "gulp-sass": "^2.1.1",
    "gulp-sass-lint": "^1.1.1"
  }
}

Courir sur ce styles.scss fichier:

div { dsply: block; }

Vous obtenez cette sortie:

[23:53:33] Using gulpfile D:\experiments\myfolder\gulpfile.js
[23:53:33] Starting 'default'...
[23:53:33] Finished 'default' after 8.84 ms

sass\styles.scss
  1:7   warning  Property `dsply` appears to be spelled incorrectly  no-misspelled-properties
  1:21  warning  Files must end with a new line                      final-newline

??? 2 problems (0 errors, 2 warnings)

Maintenant, si vous ajoutez un .sass-lint.yml fichier à côté du fichier gulp, avec ce contenu:

rules:
  no-misspelled-properties: 0

Vous verrez à la place:

[23:54:56] Using gulpfile D:\experiments\myfolder\gulpfile.js
[23:54:56] Starting 'default'...
[23:54:56] Finished 'default' after 9.32 ms

sass\styles.scss
  1:21  warning  Files must end with a new line  final-newline

??? 1 problem (0 errors, 1 warning)

Un des avertissements est maintenant ignoré.

Le fichier readme.md de sass-lint renvoie à la configuration par défaut apparente qui contient quelques exemples supplémentaires.

87
Jeroen

Depuis sass-lint 1.10.0, il était possible de désactiver les règles sass-lint via les commentaires sources

Ci-dessous sont les différentes permutations de cette, intentionnellement presque identique à la manière scss-lint auparavant.

Désactive une règle pour l'ensemble du fichier

// sass-lint:disable border-zero
p {
  border: none; // No lint reported
}

Désactiver plus d'une règle

// sass-lint:disable border-zero, quotes
p {
  border: none; // No lint reported
  content: "hello"; // No lint reported
}

Désactiver une règle pour une seule ligne

p {
  border: none; // sass-lint:disable-line border-zero
}

Désactiver toutes les peluches dans un bloc (et tous les blocs contenus)

p {
  // sass-lint:disable-block border-zero
  border: none; // No result reported
}

a {
  border: none; // Failing result reported
}

Désactiver et réactiver

// sass-lint:disable border-zero
p {
  border: none; // No result reported
}
// sass-lint:enable border-zero

a {
  border: none; // Failing result reported
}

Désactiver/activer tous les linters

// sass-lint:disable-all
p {
  border: none; // No result reported
}
// sass-lint:enable-all

a {
  border: none; // Failing result reported
}

Le sass-lint readme inclut tous les détails et les docs ont également été mis à jour.

Les plugins grunt, gulp et atom ont tous été mis à jour également pour exiger la version 1.10 et les versions ultérieures. Vous pouvez donc les réinstaller rapidement ou les mettre à jour et vous êtes prêt à commencer.

Nous sommes désolés que la publication ait été si longue, mais nous avons dû résoudre quelques problèmes dans notre AST avant de pouvoir compter sur leur utilité.

10
Dan Purdy

La désactivation des règles de filtrage pour des lignes spécifiques est prise en charge à partir de la version 1.10 de sass-lint.

https://github.com/sasstools/sass-lint#disabling-linters-via-source

À ce jour, sass-lint ne prend pas en charge la désactivation des règles fichier par fichier ou ligne par ligne. Ils ont un problème de GitHub de longue date suivi de la fonctionnalité.

3
eppsilon

Je t'ai eu.

Premièrement, voici la liste des règles pour sass-lint:

https://github.com/sasstools/sass-lint/tree/develop/lib/rules

Ensuite, vous pouvez définir une option pour la règle souhaitée:

rule:
    severity: 0

0 = rien écrit

1 = avertissement

2 = erreur

Est-ce ce dont vous aviez besoin?

0
suzumakes