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.

tiempo de ejecución
fuente
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

goofballLogic
fuente
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 .

Nick Tomlin
fuente
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

un darren
fuente
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
James Skemp
fuente
35

Responder

Se puede utilizar un comentario en línea: // eslint-disable-next-line rule-name.

Ejemplo

// eslint-disable-next-line no-console
console.log('eslint will ignore the no-console on this line of code');

Referencia

ESLint - Deshabilitar reglas con comentarios en línea

Brylie Christopher Oxley
fuente
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).

LeeGee
fuente
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
Raymond Wachaga
fuente
9

Para deshabilitar una sola regla para el resto del archivo a continuación:

/* eslint no-undef: "off"*/
const uploadData = new FormData();
Farhan Salam
fuente
1
o/* eslint-disable no-new */
Илья Зеленько
6

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

alert('foo'); // eslint-disable-line
Debbie Ellis
fuente
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ú.)

Sid
fuente
-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

Yubin Shinhmar
fuente
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