2013-05-02 34 views
5

Với sự sau thiết lập jsHint không phàn nàn về console.log báo cáo trong khi nó vẫn báo cáo debugger báo cáo:grunt-contrib-jshint không phàn nàn về console.log

jshint: { 
     files: [ 
     'Gruntfile.js', 
     'js/**/*.js', 
     'tests/*.js', 
     ], 
     options: { 
     curly: true, 
     immed: true, 
     noarg: true, 
     expr: true, 
     quotmark: 'single', 
     maxdepth: 3, 
     browser: true, 
     eqnull: true 
     } 
    }, 

Trả lời

8

Theo như tôi có thể nói, JSHint chưa bao giờ cảnh báo về các tham chiếu đến console. Không có mã trong đó để xử lý cụ thể các tham chiếu đó.

console đơn giản được coi là một số nhận dạng cần được xác định và có thể truy cập được từ bất kỳ ngữ cảnh nào được nhắc đến (điều này đúng, vì đó thực sự là tất cả).

Vì vậy, bạn có thể yêu cầu JSHint cảnh báo về việc sử dụng console bằng cách cảnh báo về tất cả các biến không xác định. Chỉ cần đặt tùy chọn undef thành true.

Sau đó, nếu bạn muốn cho phép việc sử dụng console, bạn có thể thêm nó vào chỉ thị globals của bạn hoặc thiết lập các tùy chọn devel để true (mà ngầm thêm nó vào chỉ thị globals của bạn).

+0

Ok, đã bị nhầm lẫn bởi tùy chọn 'devel'. Đối với tôi, có vẻ như jsHint sẽ luôn phàn nàn về 'giao diện điều khiển' và tôi có thể tắt tiếng nó bằng' devel: true' –

+0

@ AndreasKöberle - Vâng, các tài liệu dường như không rõ ràng về điều đó. Tôi có thể mở một vấn đề trên GitHub và xem liệu nó có thể được làm rõ hơn một chút hay không. –

+0

Đối với những người bạn đọc câu trả lời này một năm sau đó, tài liệu 'devel' bây giờ khá rõ ràng: http://www.jshint.com/docs/options/#environments – aymericbeaumet

2

Tôi gặp sự cố này khi tôi muốn cảnh báo tham chiếu đến console và có undef: truedevel: false nhưng vẫn không nhận được cảnh báo. Hóa ra là tôi cũng đã node: true, hủy bỏ cảnh báo đó. Sau khi thay đổi nó thành node: false nó đã hoạt động!

+0

Tác phẩm này. Có cách nào để cảnh báo chỉ trên console.log và không console.error? – wdphd

+0

Tôi không nghĩ vậy. Khi đặt 'console' là global, nó sẽ bao gồm cả .log và .error –

3

Tôi cũng gặp sự cố này.

Tôi đã có "undef" được đặt thành true và vẫn không hoạt động.

Tôi đã thử "devel" không có kết quả.

Cuối cùng - Tôi chỉ đơn giản là sử dụng biến "globals" như vậy:

"globals" : { 
     "console": true 
} 

và đó đã làm các trick.

+0

Bạn chỉ có thể thực hiện' 'console ': false' để cho phép truy cập chỉ đọc vào đối tượng' console'. – aymericbeaumet

Các vấn đề liên quan