sourcemaps - node-sass
¿Sass-lint ignora cierta línea? (4)
Estoy usando sass -lint con Gulp. ¿Cómo puedo desactivar las advertencias para un estilo en particular en mi sass desde la salida de la consola de pelusa?
He encontrado una pregunta similar pero estoy usando sass -lint, not scss -lint: Tener scss-lint ignora una línea en particular
Este es el que estoy usando: https://www.npmjs.com/package/gulp-sass-lint
Probé algunas variaciones basadas en el proyecto scss -lint:
// scss-lint:disable ImportantRule
// sass-lint:disable ImportantRule
// sass-lint:disable no-important
Para ser claros, quiero desactivar las advertencias para un estilo específico en mi SASS, no globalmente. Usaré esto cuando lo que activa la advertencia sea intencional. Por ejemplo, podría establecer múltiples estilos de fondo, de modo que uno puede ser una alternativa para los navegadores más antiguos. Pero actualmente esto está desencadenando la advertencia de propiedades no duplicadas.
Deshabilitar a través de comentarios
Actualización de diciembre de 2016 según los documentos esto ahora será posible utilizando esta sintaxis:
Deshabilitar más de 1 regla para todo el archivo
// sass-lint:disable border-zero, quotes p { border: none; // No lint reported content: "hello"; // No lint reported }
Deshabilitar una regla para una sola línea
p { border: none; // sass-lint:disable-line border-zero }
Deshabilita todas las pelusas dentro de un bloque (y todos los bloques contenidos)
p { // sass-lint:disable-block border-zero border: none; // No result reported }
Nueva información cortesía del comentarista @IanRoutledge.
Sin embargo, antes , si desea desactivar ciertas reglas, pero solo para bloques de código específicos y / o partes del código. Por lo que puedo tell del código fuente subyacente, no sería posible con sass-lint. También intenté algunas otras búsquedas, y leí la base de código en general, pero no encontré ninguna pista de que la característica que está buscando existe.
A modo de comparación, esta consulta para el código fuente de scss-lint muestra claramente que se implementa allí, de una manera que no parece tener una solución análoga en la lib que está utilizando.
Deshabilitar mediante las configuraciones yml
Sin embargo, puedes deshabilitar las reglas en general. .sass-lint.yml
tener un archivo .sass-lint.yml
para deshabilitar las advertencias.
Supongamos que tiene este 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());
});
Y este package.json
:
{
"devDependencies": {
"gulp": "^3.9.0",
"gulp-sass": "^2.1.1",
"gulp-sass-lint": "^1.1.1"
}
}
Ejecutando en este archivo styles.scss
:
div { dsply: block; }
Obtienes esta salida:
[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)
Ahora si agrega un archivo .sass-lint.yml
lado del archivo gulp, con este contenido:
rules:
no-misspelled-properties: 0
En cambio, verá:
[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)
Una de las advertencias ahora se ignora.
El archivo readme.md de sass-lint se vincula a la configuración predeterminada aparente que tiene algunos ejemplos más.
A partir de sass-lint 1.10, se admite la desactivación de las reglas de borrado de líneas específicas.
https://github.com/sasstools/sass-lint#disabling-linters-via-source
Hasta ahora, sass-lint no es compatible con las reglas de inhabilitación por archivo o por línea. Tienen un problema de larga duración de GitHub que rastrea la característica.
A partir de sass-lint 1.10.0, ha sido posible desactivar las reglas de sass-lint a través de los comentarios fuente
Debajo están las diferentes permutaciones de esto, intencionalmente casi idénticas a la manera anterior de la pelusa scss.
Deshabilitar una regla para todo el archivo
// sass-lint:disable border-zero
p {
border: none; // No lint reported
}
Deshabilitar más de 1 regla
// sass-lint:disable border-zero, quotes
p {
border: none; // No lint reported
content: "hello"; // No lint reported
}
Deshabilitar una regla para una sola línea
p {
border: none; // sass-lint:disable-line border-zero
}
Deshabilita todas las pelusas dentro de un bloque (y todos los bloques contenidos)
p {
// sass-lint:disable-block border-zero
border: none; // No result reported
}
a {
border: none; // Failing result reported
}
Deshabilitar y habilitar de nuevo
// sass-lint:disable border-zero
p {
border: none; // No result reported
}
// sass-lint:enable border-zero
a {
border: none; // Failing result reported
}
Desactivar / habilitar todos los borradores
// sass-lint:disable-all
p {
border: none; // No result reported
}
// sass-lint:enable-all
a {
border: none; // Failing result reported
}
El archivo léame sass-lint incluye todos los detalles y los docs se han actualizado.
Los plugins gruñido, gulp y atom se han actualizado también para requerir v1.10 y superior, por lo que una reinstalación rápida de estos o una actualización y usted estará listo para funcionar.
Lamentamos que haya tardado tanto en aparecer, pero tuvimos que solucionar algunos problemas en nuestro AST antes de confiar en que fueran útiles.
Gotcha.
Primero, aquí está la lista de reglas para sass-lint:
https://github.com/sasstools/sass-lint/tree/develop/lib/rules
A continuación, puede establecer una opción para la regla que desee:
rule:
severity: 0
0 = nada escrito
1 = advertencia
2 = error
¿Es esto lo que necesitabas?