2017-06-22 44 views
38

Chcę używać Prettier i ESLint razem, ale doświadczyłem niektórych konfliktów po prostu za pomocą uruchamiania ich jeden po drugim. Widzę, że istnieją te trzy pakiety, które wydają się im pozwolić, aby być stosowane w tandemie:Jaka jest różnica między ładniejszymi-eslint, eslint-plugin-ładniejszymi i eslint-config-ładniejszymi?

  • prettier-eslint
  • eslint-plugin-prettier
  • eslint-config-prettier

Jestem jednak pewien, która ma być używana jako te wszystkie nazwy pakietów zawierają eslint i prettier.

Do czego powinienem użyć?

Odpowiedz

87

ESLint zawiera wiele reguł, a te, które są związane z formatowaniem, mogą być w konflikcie z Prettier, takimi jak arrow-parens, space-before-function-paren itd. Dlatego używanie ich razem spowoduje pewne problemy. Poniższe narzędzia zostały stworzone do wspólnego korzystania z ESLint i Prettier.

Napisałem comparison in a tabular format w sensie, ponieważ Stack Overflow nie obsługuje formatowania tabel. Sprawdź to, jeśli wolisz więcej organizacji.

enter image description here

prettier-eslint: Uruchamia prettier następnie uruchomić eslint --fix na kodzie. eslint zwykle ma automatyczne poprawki do związanych z formatowaniem reguł, a eslint --fix będzie w stanie naprawić konfliktowe formatowanie wprowadzone przez Prettier. Nie będzie trzeba oddzielnie uruchamiać polecenia prettier.

: To jest wtyczka ESLint, co oznacza, że ​​zawiera implementację dodatkowych reguł sprawdzanych przez ESLint. Ta wtyczka używa Prettier pod maską i powoduje problemy, gdy twój kod różni się od oczekiwanego wyjścia Prettiera. Te problemy można automatycznie naprawić za pomocą --fix. Dzięki tej wtyczce nie trzeba oddzielnie uruchamiać polecenia prettier, komenda uruchamiana jest jako część wtyczki. Ta wtyczka nie wyłącza reguł związanych z formatowaniem, a będziesz musiał je wyłączyć, jeśli zauważysz konflikty dotyczące takich reguł ręcznie lub przez eslint-config-prettier.

eslint-config-prettier: To jest konfiguracja ESLint i zawiera konfiguracje dla reguł (niezależnie od tego, czy określone reguły są włączone, wyłączone, czy specjalne konfiguracje). Ta konfiguracja pozwala używać Prettier z innymi konfiguracjami ESLint, takimi jak eslint-config-airbnb, wyłączając reguły związane z formatowaniem, które mogą kolidować z Prettier. Dzięki tej konfiguracji nie musisz używać prettier-eslint, ponieważ ESLint nie będzie narzekał po tym, jak Prettier formatuje twój kod. Będziesz jednak musiał osobno uruchomić komendę prettier.

Mam nadzieję, że to podsumuje różnice.

+6

Niesamowity format samo-odpowiedzi, pomocne informacje. –

+0

Mam plik eslintrc, w którym mam niestandardowe reguły. tj. nie-extra-semi jednak działający eslint --fix z ładniejszymi wymaga średnika, czy potrzebuję osobnego pliku reguł dla ładniejszego? – jasan

+1

Po prostu komentarz na temat ogólnej różnicy między wtyczkami i konfiguracjami eslint, ponieważ czułem, że to było to, czego mi brakowało: wtyczki definiują nowe reguły eslint i konfigurują zestaw, czy nie (i jak) reguły powinny być stosowane. – laugri