2015-05-22 16 views
108

Tôi gán một thuộc tính vào đối tượng cửa sổ toàn cầu, nhưng khi tôi chạy eslint, tôi có được điều này:ESLint - "cửa sổ" không được xác định. Làm thế nào để cho phép các biến toàn cục trong package.json

"cửa sổ" không được định nghĩa

cửa sổ định nghĩa sau đây như là một biến toàn cầu đối với mã mà không cần kích hoạt các quy tắc đang được thử nghiệm::

này here in the eslint docs tôi thấy
valid: [ 
    { 
    code: "window.alert()", 
    globals: [ "window" ] 
    } 
] 

Tôi đã thử thêm một cái gì đó như thế này vào tệp package.json để có eslint cho phép "cửa sổ" dưới dạng biến toàn cầu, nhưng tôi phải làm điều gì đó sai. Từ các tài liệu có vẻ như tôi có thể cần phải làm một cái gì đó như thế này trong một tập tin riêng biệt, nhưng có cách nào để xác định một số biến toàn cầu được phép ngay trong tệp package.json?

+0

FYI, nếu bạn đang sử dụng nút và muốn ESLint nhận 'global' sau đó bạn cần phải đảm bảo ' "nút": true' được thiết lập dưới' "env của bạn "' cấu hình. –

Trả lời

78

tôi tìm thấy nó trên trang này: http://eslint.org/docs/user-guide/configuring

Trong package.json, công trình này:

"eslintConfig": { 
    "globals": { 
    "window": true 
    } 
} 
+35

đúng cách để làm điều đó là sử dụng "env": {"trình duyệt": true} – Nicolas

+0

@Nicolas, có thể tôi đã sử dụng phương pháp bạn đề xuất nếu đó là những gì tôi đã tìm thấy trước, nhưng câu trả lời này là ít hữu ích nhất trong việc hiển thị, bạn có thể có cấu hình eslint của mình trong package.json. – chevin99

+3

Cũng có thể tạo các hình cầu nội tuyến cho eslint như thế này:/* global angular: true */ – Mirko

41

Bạn không thể chỉ định các hình cầu này trong package.json. Thêm .eslintrc vào thư mục gốc của dự án.

Chỉ định globals như thế này

{ 
    "globals": { 
    "document": true, 
    "foo": true, 
    "window": true 
    } 
} 
+0

Tôi giả sử bạn có nghĩa là "package.json" khi bạn nói "project". json ". Sử dụng tệp .eslintrc có thể là cách ưa thích để đi, nhưng có thể chỉ định cấu hình trong "package.json", sử dụng đối tượng "eslintConfig" như được chỉ định trong câu trả lời khác. – chevin99

+0

Bằng cách nào đó việc đặt eslingConfig vào package.json không hoạt động đối với tôi (ngoài khái niệm sai).Thêm nó vào .eslintrc.json hoạt động. – Petrunov

+1

@Petrunov '.eslintrc.json' chỉ có thể là' .eslintrc' –

2

Nếu bạn đang sử dụng góc bạn có thể lấy nó ra với:

"env": { 
    "browser": true, 
    "node": true 
}, 
"rules" : { 
    "angular/window-service": 0 
} 
5

bạn .eslintrc.json nên chứa các văn bản dưới đây.
Vì vậy ESLint biết về các biến toàn cục của bạn

{ 
"env": { 
    "browser": true, 
    "node": true 
    }                  
} 
Các vấn đề liên quan