Có cách nào để chặn cảnh báo JSHint cho một dòng nhất định không?


264

Tôi đã sử dụng một trường hợp (đơn) trong ứng dụng của mình evalvà tôi chỉ muốn loại bỏ cảnh báo JSHint cho trường hợp này.

Có cách nào để đạt được điều đó? Cấu hình, bình luận ma thuật, ...?

Câu trả lời:


465

Vâng, đó là một cách. Hai trong thực tế. Vào tháng 10 năm 2013, jshint đã thêm một cách để bỏ qua các khối mã như thế này:

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

Bạn cũng có thể bỏ qua một dòng duy nhất với một nhận xét như sau:

ignoreThis(); // jshint ignore:line

Đối với bất kỳ ai đang cố gắng để các plugin 2/3 Văn bản Sublime hoạt động, bạn sẽ cần nâng cấp jshint cụ thể trong thư mục gói ST. (Tôi đặc biệt chạy vào vấn đề này với JSHint Gutter)
Josh

7
Có thể bỏ qua một lỗi cụ thể không? ví dụ. maxlen trên dòng cụ thể đó nhưng vẫn phát hiện các lỗi khác.
Jürgen Paul

4
cảm ơn chúa vì // jshint ignore:line- làm việc tuyệt vời với;(function() { // jshint ignore:line
katy lavallee

4
Tùy chọn "bỏ qua" không được chấp nhận và tôi gặp lỗi "tùy chọn xấu" khi sử dụng phiên bản 0.9.9 của tính năng Tích hợp JSHint trong nhật thực. Có một cách khác để làm điều tương tự?
MidnightJava

2
Tôi đã khắc phục bad option: 'ignore'bằng cách sử dụng cụ thể tùy chọn cho dòng tôi muốn bỏ qua. Trong trường hợp của tôi, tôi muốn bỏ qua if (x == null)vì tôi muốn nó bằng không chỉ null và được sử dụng /* jshint eqnull:true */trong cùng chức năng như ifđể tắt tiếng JSHint.
Nate

102

Câu trả lời "xấu xa" không có tác dụng với tôi. Thay vào đó, tôi đã sử dụng những gì được khuyến nghị trên trang tài liệu JSH gợi ý . Nếu bạn biết cảnh báo được đưa ra, bạn có thể tắt nó cho một khối mã. Ví dụ: tôi đang sử dụng một số mã bên thứ ba không sử dụng các hàm trường hợp lạc đà, nhưng các quy tắc JSHint của tôi yêu cầu nó, dẫn đến cảnh báo. Để im lặng, tôi đã viết:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */

15
Và làm thế nào để tôi tìm ra số cảnh báo của tôi?
11684

3
Khi bạn chạy jshint và nhận được lỗi ban đầu, số sẽ được báo cáo.
phímanz

5
Ồ xin lỗi. Tôi quên tôi đã để lại một bình luận, vì vậy đã không đăng một cái gì đó sau khi tôi kiểm tra các tài liệu. Không, bạn phải thêm --verbosevào lệnh để lấy số cảnh báo.
11684

9
Ngoài ra, câu trả lời cho câu hỏi liên quan này đề nghị kiểm tra message.js . Tôi thấy điều này khá hữu ích vì tôi sử dụng WebStorm.
Michael Jess

3
Tất cả các số cảnh báo, lỗi và thông tin có thể được tìm thấy ở đây: github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya

37

Như bạn có thể thấy trong tài liệu của JSHint, bạn có thể thay đổi các tùy chọn cho mỗi chức năng hoặc mỗi tệp . Trong trường hợp của bạn, chỉ cần đặt một nhận xét trong tệp của bạn hoặc thậm chí nhiều địa phương hơn chỉ trong chức năng sử dụng eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}

fwiw, điều này không làm việc với tôi với 2.1.9 nhưng đã hoạt động sau khi nâng cấp lên 2.1.11
kangax
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.