Cách tắt cảnh báo 'xác định' không được xác định bằng JSHint và RequestJS


108

Tôi sử dụng RequestJS AMD trong dự án của mình. Khi tôi chạy jshint trong dự án của mình, nó sẽ xuất hiện lỗi như

Trong AMD Scripts

 'define' is not defined.

Trong các trường hợp thử nghiệm Mocha

 'describe' is not defined.
 'it' is not defined.

Làm thế nào để loại bỏ cảnh báo này trong jshint?

Câu trả lời:


187

Chỉ để mở rộng một chút, đây là một .jshintrcthiết lập cho Mocha:

{
  ....
  "globals"   : {
    /* MOCHA */
    "describe"   : false,
    "it"         : false,
    "before"     : false,
    "beforeEach" : false,
    "after"      : false,
    "afterEach"  : false
  }
}

Từ Tài liệu JSHint - giá trị sai (mặc định) có nghĩa là biến ở chế độ chỉ đọc.

Nếu bạn chỉ định nghĩa hình cầu cho một tệp cụ thể, bạn có thể làm như sau:

/*global describe, it, before, beforeEach, after, afterEach */

41
chúng ta có thể sử dụng {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae

@bendytree bạn có biết liệu tôi có thể thêm các quy tắc này cho một số tệp / thư mục không phải toàn cục không?
Gobliins

@Gobliins Bohdan nhận xét ở trên. Thêm dòng đó làm dòng đầu tiên của tệp thử nghiệm mocha của bạn và nó sẽ thực thi quy tắc chỉ dành cho tệp đó
Isaac


12

Để tránh cảnh báo không được xác định trong jshint cho javascript, hãy thêm các nhận xét như:

/*global describe:true*/

Tùy chọn


8

Thêm cái này vào .jshintrc của bạn

"predef" : ["define"]   // Custom globals for requirejs

Không chắc tại sao ai đó lại phản đối điều này. Tôi đang sử dụng chính xác điều này trong các dự án của mình và rõ ràng hơn các câu trả lời và công việc khác.
Shital Shah

19
predef được depreceted, globals sử dụng
Jonathan Azulay

@JonathanAzulay Tôi không tìm thấy bất kỳ ghi chú không dùng nữa tại jshint.com/docs/options/#predef . Tôi nghĩ rằng toàn cầu có thể được sử dụng để tùy chỉnh toàn cầu JavaScript ví dụ như góc, $, jQuery vv và predef thể được sử dụng cho các đối tượng toàn cầu tiềm ẩn như cửa sổ, tài liệu, an ủi vv
Amitesh

6

đến muộn, nhưng hãy sử dụng tùy chọn này trong jshintrc:

"dojo": true

và ngươi sẽ yên nghỉ mà không có cảnh báo đỏ ...


6

Nếu bạn đang làm việc trên nút js. Thêm hai dòng này vào đầu tệp của bạn

/*jslint node: true */
"use strict";

Câu hỏi này là về JSHint .
PointedEars


1

Nếu bạn đang cố gắng chạy JSHint trong WebStorm với Mocha, như tôi, hãy vào:

WebStorm> Tùy chọn> Ngôn ngữ & Khung công tác> JavaScript> Công cụ Chất lượng Mã> JSHint

Cuộn xuống "Môi trường" và đảm bảo rằng bạn đã chọn hộp kiểm để bật "Mocha", thao tác này sẽ thiết lập các định nghĩa cho JSHint cho Mocha cho bạn.

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.