Tắt quy tắc eslint cho một dòng cụ thể


1346

Để tắt quy tắc nhuộm cho một dòng cụ thể trong JSHint, chúng tôi sử dụng quy tắc sau:

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

Tôi đã cố gắng xác định vị trí tương đương như trên cho eslint.


86
Sử dụng eslint-disable-next-line:
Brylie Christopher Oxley

Bắt đầu với ESLint v7, bạn có thể chỉ định lý do vô hiệu hóa một quy tắc nhất định trong cùng một nhận xét.
Dan Dascalescu

Câu trả lời:


2157

Bạn có thể sử dụng cú pháp dòng đơn bây giờ:

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

function Thing() {

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

}

Hoặc nếu bạn không muốn có một nhận xét trên cùng một dòng với mã thực tế, có thể tắt dòng tiếp theo:

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

Liên kết tài liệu được yêu cầu: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


4
Bây giờ tôi nhận được một vấn đề eslint khác: cảnh báo Nội dung bình luận bất ngờ với mã không có nội dung-bình luận :(
arcseldon

52
Làm việc tuyệt vời cho tôi. Ngoài ra nếu bạn không quan tâm đến tính cụ thể, bạn có thể thực hiện //eslint-disable-linevà nó dường như vô hiệu hóa tất cả các quy tắc cho dòng đã cho.
KhalilRavanna

7
Vì một số lý do, điều này không hiệu quả với tôi; Tôi đang chạy eslint 3.8.0. Tôi phải sử dụng / * eslint-vô hiệu hóa * / và / * eslint-enable * /. Bất cứ ý tưởng tại sao điều này có thể được? Tôi thích cách tiếp cận một dòng
SomethingOn

8
@S SomethingOn có cùng một vấn đề, hóa ra tôi đã --no-inline-configbật, màPrevent comments from changing config or rules
tibalt

4
Không hoạt động với "gulp-eslint": "^ 3.0.1". Tôi phải sử dụng / * eslint-vô hiệu hóa * /
olefrank

528

Bạn có thể sử dụng như sau

/*eslint-disable */

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

/*eslint-enable */

Đó là hơi chôn vùi phần "quy tắc cấu hình" của các tài liệu ;

Để tắt cảnh báo cho toàn bộ tệp, bạn có thể bao gồm một nhận xét ở đầu tệp, ví dụ:

/*eslint eqeqeq:0*/

Cập nhật

ESlint hiện đã được cập nhật với cách tốt hơn để vô hiệu hóa một dòng duy nhất, xem câu trả lời tuyệt vời của @ goofballLogic .


5
BTW, có vẻ như //cú pháp nhận xét không hoạt động được
MonsieurDart

Cũng là một lưu ý phụ, tôi đang tìm cách vô hiệu hóa eslint cho một dòng trong html. công việc này: thumbsup:
Adil H. Raza

223

Bạn cũng có thể vô hiệu hóa một quy tắc / quy tắc cụ thể (chứ không phải tất cả) bằng cách chỉ định chúng trong các khối enable (mở) và vô hiệu hóa (đóng):

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

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

/* eslint-enable no-alert */

thông qua liên kết của @ goofballMagic ở trên: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


6
Hãy chắc chắn ý kiến ​​eslint của bạn vượt qua eslint! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian

Tôi sử dụng kết hợp prettiereslintđịnh dạng mã của mình. Điều này không cho phép bình luận nội tuyến. Nhiều /* eslint-disable-next-line ... */câu lệnh khó đọc và phát hiện trong mã.
Bernhard Döbler

78

Từ việc định cấu hình ESLint - Tắt các quy tắc với nhận xét nội tuyến :

/* 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

Kết thúc chung của bình luận, // eslint-disable-line không cần bất cứ điều gì sau nó: không cần tìm mã để chỉ định những gì bạn muốn ES Lint bỏ qua.

Nếu bạn cần bỏ qua bất kỳ cú pháp nào vì bất kỳ lý do nào khác ngoài việc gỡ lỗi nhanh, bạn có vấn đề: tại sao không cập nhật cấu hình delint của bạn?

Tôi thích // eslint-disable-linecho phép tôi chèn consoleđể kiểm tra nhanh dịch vụ mà không có môi trường phát triển giữ tôi lại vì vi phạm giao thức. (Tôi thường cấm consolevà sử dụng lớp ghi nhật ký - đôi khi được xây dựng dựa trên console.)


Không có hành vi phạm tội, nhưng đây là giải pháp tương tự như câu trả lời được chấp nhận, vì vậy không chắc điều này giúp ích như thế nào?
một người yêu dấu

25
KHÔNG làm điều này. Nếu bạn có 5 lỗi trên đường dây, tất cả chúng sẽ bị bỏ qua. Luôn luôn đặt ra một cách rõ ràng quy tắc sẽ bị bỏ qua hoặc những đứa trẻ sẽ làm cho một mớ hỗn độn.
Filip Dupanović

3
@ FilipDupanović Nếu các lập trình viên của bạn có thể tạo ra một mớ hỗn độn trong một dòng mã, chỉ vì eslint không nhìn qua vai họ cho một dòng. Thực sự có điều gì đó không ổn ở công ty của bạn ... Điều đó nói rằng, việc bạn muốn bỏ qua quy tắc nào sẽ làm rõ hơn lý do tại sao bạn đặt dòng vô hiệu hóa ở vị trí đầu tiên.
Edwin Stoteler

2
@ FilipDupanović Có lẽ eslint nên có một quy tắc meta để yêu cầu quy tắc rõ ràng để bỏ qua? Có lẽ nó đã làm rồi.
Josef.B

1
@ Josef.B có một quy tắc không chuẩn cho điều đó: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/ Lỗi Nó hoạt động thực sự độc đáo.
Craig Harley

13

Hoặc đối với nhiều lần bỏ qua trên dòng tiếp theo, hãy xâu chuỗi các quy tắc bằng dấu phẩy

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

9

Để vô hiệu hóa một quy tắc duy nhất cho phần còn lại của tệp bên dưới:

/* eslint no-undef: "off"*/
const uploadData = new FormData();

1
hoặc/* eslint-disable no-new */
Илья Зеленько

6

Để vô hiệu hóa tất cả các quy tắc trên một dòng cụ thể:

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

1

Nhận xét dòng đơn không hoạt động với tôi trong một thành phần chức năng câm phản ứng, tôi đã sử dụng vô hiệu hóa cấp độ tệp bằng cách thêm / * eslint-vô hiệu hóa insertEslintErrorDefDefHere * /

(thông thường nếu bạn đang sử dụng vs mã và gặp lỗi eslint, bạn có thể nhấp vào dòng gây ra lỗi và bóng đèn sẽ hiển thị trong vs mã, nhấp chuột phải vào bóng đèn và chọn bất kỳ tùy chọn tắt nào và vs mã sẽ làm điều đó cho bạn.)


-5

Bạn có thể thêm các tệp gây ra lỗi cho tệp .eslintignore trong dự án của mình. Giống như tất cả các tệp .vue chỉ cần thêm /*.vue


4
nó yêu cầu một dòng, không phải toàn bộ tập tin
Kevin Danikowski

Anh ta cũng có thể ngừng sử dụng eslint ... Nếu bạn sẽ bỏ qua mọi tập tin có vấn đề tại sao lại sử dụng nó?
Ruud Verhoef
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.