ESLint chứa nhiều quy tắc và những người được định dạng liên quan đến sức mâu thuẫn với đẹp hơn, chẳng hạn như arrow-parens
, space-before-function-paren
vv Do đó sử dụng chúng với nhau sẽ gây ra một số vấn đề. Các công cụ sau đã được tạo ra để sử dụng ESLint và Prettier cùng nhau.
Tôi đã viết một so sánh ở định dạng bảng theo ý chính, vì Stack Overflow không hỗ trợ định dạng bảng. Hãy kiểm tra nếu bạn thích tổ chức hơn.
prettier-eslint
: Chạy prettier
sau đó chạy eslint --fix
trên mã. eslint
thường có các bản sửa lỗi tự động để định dạng các quy tắc liên quan và eslint --fix
sẽ có thể sửa định dạng xung đột do Prettier giới thiệu. Bạn sẽ không cần phải chạy prettier
lệnh riêng biệt.
eslint-plugin-prettier
: Đây là một plugin ESLint, có nghĩa là nó chứa triển khai các quy tắc bổ sung mà ESLint sẽ kiểm tra. Plugin này sử dụng Prettier dưới mui xe và sẽ phát sinh vấn đề khi mã của bạn khác với đầu ra dự kiến của Prettier. Những vấn đề đó có thể được tự động khắc phục thông qua --fix
. Với plugin này, bạn không cần phải chạy prettier
lệnh riêng lẻ, lệnh đang được chạy như một phần của plugin. Plugin này không tắt các quy tắc liên quan đến định dạng và bạn sẽ cần tắt chúng nếu bạn thấy xung đột đối với các quy tắc đó theo cách thủ công hoặc thông qua eslint-config-prettier
.
eslint-config-prettier
: Đây là một cấu hình ESLint và nó chứa các cấu hình cho các quy tắc (cho dù một số quy tắc nhất định đang bật, tắt hoặc cấu hình đặc biệt). Cấu hình này cho phép bạn sử dụng Prettier với các cấu hình ESLint khác như eslint-config-airbnb
bằng cách tắt các quy tắc liên quan đến định dạng có thể xung đột với Prettier. Với cấu hình này, bạn không cần sử dụng prettier-eslint
vì ESLint sẽ không phàn nàn sau khi Prettier định dạng mã của bạn. Tuy nhiên, bạn sẽ cần phải chạy prettier
lệnh riêng biệt.
Hy vọng điều này tổng hợp sự khác biệt.
Cập nhật: Đó là phương pháp được khuyến nghị để cho Prettier xử lý định dạng và ESLint cho các vấn đề không định dạng, prettier-eslint
không theo cùng hướng với phương pháp đó, do đó prettier-eslint
không được khuyến khích nữa. Bạn có thể sử dụng eslint-plugin-prettier
và eslint-config-prettier
cùng nhau.