Bộ tạo ESLintrc

Tiếp theo

Công cụ này tạo tệp cấu hình .eslintrc.json sẵn sàng sử dụng từ bốn lựa chọn: môi trường trình duyệt hoặc Node, hỗ trợ TypeScript và hỗ trợ React. Nó kết nối eslint:recommended, các plugin TypeScript hoặc React tương ứng và vài thay thế quy tắc hợp lý, để bạn dán kết quả vào dự án của mình.

Cách tạo cấu hình ESLint

  1. 1

    Chọn môi trường

    Cho biết mã chạy trong trình duyệt, trong Node.js hay cả hai. Bộ tạo sẽ thiết lập các mục `env` tương ứng, kèm `es2022`.

  2. 2

    Bật TypeScript

    Đánh dấu TypeScript và bộ tạo sẽ thêm `@typescript-eslint/parser` cùng plugin TypeScript được khuyến nghị.

  3. 3

    Bật React

    Đánh dấu React và bộ tạo sẽ thêm `eslint-plugin-react` kèm bộ cài đặt sẵn được khuyến nghị.

  4. 4

    Tạo

    Nhấp vào nút và cấu hình được tạo dưới dạng JSON có định dạng rõ ràng.

  5. 5

    Sao chép vào dự án

    Dán kết quả vào `.eslintrc.json` và cài đặt các plugin mà cấu hình tham chiếu.

Cấu hình được tạo gồm những gì

Bộ tạo luôn bắt đầu từ eslint:recommended và thêm đúng những gì lựa chọn của bạn bao hàm:

  • env với browser và/hoặc node, kèm es2022
  • @typescript-eslint/parserplugin:@typescript-eslint/recommended khi TypeScript được bật
  • plugin:react/recommended khi React được bật
  • no-consoleno-unused-vars được đặt thành warn

Kết quả là một đối tượng JSON đơn giản theo dạng .eslintrc.json truyền thống, sẵn sàng để dán và mở rộng bằng các quy tắc của riêng bạn.

So sánh cấu hình phẳng và cấu hình truyền thống

ESLint 9 đã loại bỏ định dạng .eslintrc.* và chuyển sang sử dụng định dạng cấu hình phẳng (eslint.config.js). Các điểm khác biệt chính như sau:

Khía cạnh Truyền thống (.eslintrc) Phẳng (eslint.config.js)
Định dạng JSON, YAML hoặc CommonJS Mô-đun JavaScript ESM hoặc CommonJS
Mở rộng extends: ["plugin:react/recommended"] Phân bổ vào mảng: ...reactPlugin.configs.recommended
Thiết lập thay thế Mảng overrides với các mẫu dạng glob Nhiều đối tượng trong mảng được xuất
Các biến toàn cục env: { browser: true } languageOptions.globals với các nhập liệu được chỉ định rõ ràng
Bỏ qua Tệp .eslintignore Trường ignores trong mảng cấu hình

Các dự án mới nên sử dụng cấu hình dạng phẳng. Các dự án hiện có có thể tiếp tục sử dụng phiên bản cũ trong suốt dòng sản phẩm 10.x, nhưng khuyến nghị thực hiện quá trình di chuyển.

Hệ sinh thái plugin

Các plugin điển hình cho dự án React/TS:

@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier

Đây là sáu gói cài đặt dành cho một hệ thống có quan điểm nhất định ở mức độ trung bình. Bộ tạo chỉ thêm những plugin bạn chọn, vì vậy bạn chỉ cài đặt những gì cấu hình tham chiếu.

Cùng tồn tại với Prettier

Prettier chịu trách nhiệm về định dạng; ESLint đảm bảo tính chính xác và phong cách không chỉ giới hạn ở việc định dạng. Để tránh xung đột:

  1. Cài đặt eslint-config-prettier và thêm nó vào vị trí cuối cùng trong tệp extends/config của bạn.
  2. Nó tắt tất cả các quy tắc của ESLint mà mâu thuẫn với kết quả đầu ra của Prettier.
  3. Chạy Prettier riêng biệt (khi lưu trong trình soạn thảo, trong bước trước khi ghi nhận, hoặc trong quy trình CI).

Đừng sử dụng eslint-plugin-prettier trong các dự án mới; công cụ này làm chậm tốc độ hoạt động của ESLint do nó chạy Prettier bên trong ESLint. Hãy tách hai công cụ này ra khỏi nhau.

Những mẹo điều chỉnh quy tắc

  • Bắt đầu ở mức lỏng, sau đó tăng độ chặt dần. Hãy bật cảnh báo trước khi lỗi xảy ra.
  • Ghi đè cho các bài kiểm thử. Các tệp kiểm thử thường yêu cầu chế độ no-unused-expressions được nới lỏng và các biến toàn cục của Jest có sẵn.
  • Ghi đè cho các script. Các script xây dựng có thể cần sử dụng các biến toàn cục của Node mà không cần thêm env: node vào toàn bộ hệ thống.
  • Ghi chú các thay đổi. Mỗi lần thay đổi quy tắc đều cần có chú thích giải thích lý do.

Cấu hình phù hợp với trình soạn thảo của bạn

VS Code yêu cầu tiện ích mở rộng ESLint đã được cài đặt và cấu hình đúng cách. Hãy thêm các thiết lập này vào môi trường làm việc để tự động sửa lỗi khi lưu file.

{
  "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
  "eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}

Câu hỏi thường gặp

Đối với các dự án mới, sử dụng cấu hình flat (eslint.config.js). Bộ tạo này xuất ra định dạng .eslintrc.json truyền thống, được ESLint đọc trực tiếp ở chế độ legacy; bảng so sánh ở trên cho biết điều gì thay đổi nếu bạn chuyển đổi sau này.

Đúng vậy, nếu bạn đang sử dụng TypeScript thì các mã định nghĩa @typescript-eslint/parser@typescript-eslint/eslint-plugin sẽ hỗ trợ chức năng kiểm tra lỗi có tính năng nhận diện TypeScript. Đối với các quy tắc liên quan đến kiểu dữ liệu (không chỉ cú pháp), hãy cấu hình bộ phân tích cũng bằng mã định nghĩa project: './tsconfig.json'.

Thông thường các phụ thuộc thiếu trong quy trình CI. Hãy đảm bảo rằng mã @typescript-eslint/*, các plugin và phiên bản ESLint trùng khớp giữa môi trường cục bộ và môi trường CI. Trong môi trường CI, hãy sử dụng mã npm ci (không phải npm install) để tuân thủ yêu cầu của file khóa.

Không. Các lựa chọn của bạn chỉ được dùng để tạo cấu hình; chúng không được lưu trữ và không được chia sẻ cho bên thứ ba.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác