Desactivar la regla de eslint para una línea específica


1346

Para desactivar la regla de linting para una línea particular en JSHint, usamos la siguiente regla:

/* jshint ignore:start*/
$scope.someVar = ConstructorFunction();
/* jshint ignore:end */

He estado tratando de localizar el equivalente de lo anterior para eslint.


86
Uso eslint-disable-next-line:
Brylie Christopher Oxley

A partir de ESLint v7, puede especificar el motivo para deshabilitar una regla determinada en el mismo comentario.
Dan Dascalescu

Respuestas:


2157

Puede usar la sintaxis de una sola línea ahora:

var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();

function Thing() {

     this.sayHello = function() { console.log("hello"); };

}

O si no desea tener un comentario en la misma línea con el código real, es posible deshabilitar la siguiente línea:

// eslint-disable-next-line no-use-before-define
var thing = new Thing();

Enlace de documentos solicitados: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


44
Ahora me sale otro problema de la eslint: advertencia Comentario inesperado en línea con el código no-inline-comments :(
arcseldon

52
Funciona muy bien para mi. Además, si no le importa la especificidad, simplemente puede hacerlo //eslint-disable-liney parece deshabilitar todas las reglas para la línea dada.
KhalilRavanna

77
Por alguna razón, esto no funciona para mí; Estoy ejecutando eslint 3.8.0. Tengo que usar / * eslint-disable * / y / * eslint-enable * /. ¿Alguna idea de por qué podría ser esto? Me gusta el enfoque de línea única
algo el

8
@SomethingOn tenía el mismo problema, resultó que lo había --no-inline-configencendido, quePrevent comments from changing config or rules
tibalt

44
No funciona con "gulp-eslint": "^ 3.0.1". Tengo que usar / * eslint-disable * /
olefrank

530

Puedes usar lo siguiente

/*eslint-disable */

//suppress all warnings between comments
alert('foo');

/*eslint-enable */

Que está ligeramente enterrado en la sección "configuración de reglas" de los documentos ;

Para deshabilitar una advertencia para un archivo completo, puede incluir un comentario en la parte superior del archivo, por ejemplo

/*eslint eqeqeq:0*/

Actualizar

ESlint ahora se ha actualizado con una mejor manera de desactivar una sola línea, consulte la excelente respuesta de @goofballLogic .


55
Por cierto, parece que la //sintaxis de comentarios no funciona ...
MonsieurDart

También una nota al margen, estaba buscando deshabilitar eslint para una línea en html. esto funciona: thumbsup:
Adil H. Raza

223

También puede deshabilitar una regla / reglas específicas (en lugar de todas) al especificarlas en los bloques habilitar (abrir) y deshabilitar (cerrar):

/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert */

a través del enlace de @ goofballMagic arriba: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


66
¡Asegúrese de que sus comentarios de eslint pasen eslint! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian

Yo uso una combinación de prettiery eslintpara formatear mi código. Esto no permite comentarios en línea. Muchas /* eslint-disable-next-line ... */declaraciones son difíciles de leer y de detectar en el código.
Bernhard Döbler

78

Desde la configuración de ESLint - Deshabilitar reglas con comentarios en línea :

/* eslint-disable no-alert, no-console */


/* eslint-disable */

alert('foo');

/* eslint-enable */


/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert, no-console */


/* eslint-disable */

alert('foo');


/* eslint-disable no-alert */

alert('foo');


alert('foo'); // eslint-disable-line

// eslint-disable-next-line
alert('foo');


alert('foo'); // eslint-disable-line no-alert

// eslint-disable-next-line no-alert
alert('foo');


alert('foo'); // eslint-disable-line no-alert, quotes, semi

// eslint-disable-next-line no-alert, quotes, semi
alert('foo');


foo(); // eslint-disable-line example/rule-name


31

El comentario general de fin de línea, // eslint-disable-lineno necesita nada después: no es necesario buscar un código para especificar qué desea que ES Lint ignore.

Si necesita ignorar cualquier sintaxis por algún motivo que no sea una depuración rápida, tiene problemas: ¿por qué no actualizar su configuración de delint?

Disfruto // eslint-disable-linede permitirme insertar consolepara una inspección rápida de un servicio, sin que mi entorno de desarrollo me detenga debido a la violación del protocolo. (Generalmente prohíbo consoley uso una clase de registro, que a veces se basa en console).


Sin ofender, pero esta es la misma solución que la respuesta aceptada, ¿no está seguro de cómo esto ayuda?
un darren

25
No hagas esto. Si tiene 5 errores en la línea, todos serán ignorados. Siempre establezca explícitamente la regla que se debe ignorar o los niños harán un desastre.
Filip Dupanović

3
@ FilipDupanović Si sus programadores pueden hacer un desastre dentro de una sola línea de código, solo porque eslint no está buscando sobre sus hombros una sola línea. Realmente hay algo más que va mal en su empresa ... Dicho esto, decir qué regla desea ignorar deja más claro por qué coloca la línea de desactivación allí en primer lugar.
Edwin Stoteler

2
@ FilipDupanović ¿Quizás eslint debería tener una meta regla para exigir que se ignore la regla explícita? Tal vez ya lo hace.
Josef.B

1
@ Josef.B hay una regla no estándar para eso: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/... Funciona muy bien.
Craig Harley

13

O para ignoraciones múltiples en la siguiente línea, encadena las reglas usando comas

// eslint-disable-next-line class-methods-use-this, no-unused-vars


6

Para deshabilitar todas las reglas en una línea específica:

alert('foo'); // eslint-disable-line

1

el comentario de una sola línea no funcionó para mí dentro de un componente funcional de reacción tonta, he usado la desactivación de nivel de archivo agregando / * eslint-disable insertEslintErrorDefinitionHere * /

(normalmente si está utilizando el código vs y obtiene un error de eslint, puede hacer clic en la línea que da error y una bombilla aparecerá en el código vs, hacer clic derecho en la bombilla y elegir cualquier opción de desactivación y el código vs lo hará por tú.)


-5

Puede agregar los archivos que dan error al archivo .eslintignore en su proyecto. Al igual que para todos los archivos .vue, simplemente agregue /*.vue


44
pidió una línea, no todo el archivo
Kevin Danikowski

También podría dejar de usar eslint ... Si vas a ignorar todos los archivos que tienen problemas, ¿por qué usarlos?
Ruud Verhoef
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.