ESLint, Prettier és Stylelint
A JavaScript- és CSS-kód ellenőrzése és formázása WordPress-projektben: ESLint, Prettier és Stylelint a WordPress saját beállításaival.
This content is not available in your language yet.
Három eszköz tartja rendben a front-end kódot, ugyanúgy, ahogy a PHPCS a PHP-t:
- az ESLint a JavaScriptet elemzi, és jelzi a hibákat és a rossz mintákat;
- a Prettier átformázza a kódot egységes külalakra;
- a Stylelint a CSS-t és az SCSS-t ellenőrzi.
A WordPress mindháromhoz kész beállítást ad (@wordpress/eslint-plugin, @wordpress/prettier-config, @wordpress/stylelint-config), így nem kell magadnak szabályokat összeállítanod. A blokkfejlesztéshez használt @wordpress/scripts ezekkel dolgozik.
Telepítés
Szekció neve “Telepítés”Szükséged van egy package.json fájlra és Node.js-re. Az ESLint a ^20.19.0, ^22.13.0 vagy >=24 Node-verziókat kéri. A WordPress-csomagok a Node.js hosszú távú támogatású (LTS) verzióit támogatják.
npm install --save-dev eslint @wordpress/eslint-pluginnpm install --save-dev --save-exact prettiernpm install --save-dev @wordpress/prettier-confignpm install --save-dev stylelint @wordpress/stylelint-configA Prettier hivatalos doksija a --save-exact kapcsolót ajánlja, hogy egy új verzió ne írja át váratlanul a formázást. A @wordpress/eslint-plugin az ESLint 9 és 10 verziójával működik.
Ha a projekted már használja a @wordpress/scripts csomagot, ezeket nem kell külön telepítened: a wp-scripts lint-js, lint-style és format parancsok az ESLintet, a Stylelintet és a Prettiert használják.
ESLint
Szekció neve “ESLint”Hozz létre egy eslint.config.mjs fájlt a projekt gyökerében:
import wordpress from '@wordpress/eslint-plugin';
export default [ ...wordpress.configs.recommended ];Saját szabályokat a wordpress.configs.recommended után, egy újabb objektumban adhatsz meg.
A régi .eslintrc.* formátum elavult, az ESLint 10 már nem is támogatja. Új projektben mindig az eslint.config.mjs formátumot használd.
Futtatás:
npx eslint src/npx eslint src/ --fixA --fix a javítható hibákat közvetlenül a fájlokban kijavítja, és csak a megmaradtakat listázza. Nem minden hiba javítható így.
Beállítások a WordPress-csomagban
Szekció neve “Beállítások a WordPress-csomagban”recommended: az ES2015+ szabályok, a jsdoc, jsx-a11y, react és más bővítmények integrációjával. Ez a jó kiindulópont.recommended-with-formatting: az ESLint saját formázási szabályait használja a Prettier helyett.- Külön használható szabálykészletek:
custom,es5,esnext,i18n,jsdoc,jsx-a11y,react,test-unit,test-e2e,test-playwright.
Fordítható szövegek
Szekció neve “Fordítható szövegek”Az i18n szabályok a fordítható szövegeket vizsgálják. Például az i18n-text-domain érvényes szövegtartományt követel, az i18n-translator-comments fordítói megjegyzést kér.
Prettier
Szekció neve “Prettier”A Prettier beállításának legegyszerűbb módja, ha a WordPress konfigját használod. A package.json fájlba írd be:
{ "prettier": "@wordpress/prettier-config"}Ugyanez megy .prettierrc fájlban is, a "@wordpress/prettier-config" szöveggel, vagy .prettierrc.js fájlban:
module.exports = require( '@wordpress/prettier-config' );Futtatás:
npx prettier . --writenpx prettier . --checkA --write átírja a fájlokat, a --check csak jelzi, ha valami nincs formázva. Ez utóbbit érdemes CI-ban használni. A kihagyandó mappákat a .prettierignore fájlba írd:
buildnode_modulesvendorStylelint
Szekció neve “Stylelint”A hivatalos Stylelint-doksi egy stylelint.config.mjs fájlt mutat. A WordPress-konfig így állítható be:
export default { extends: [ '@wordpress/stylelint-config' ],};Ha SCSS-t írsz, használd az scss változatot:
export default { extends: [ '@wordpress/stylelint-config/scss' ],};A csomag további változatai: @wordpress/stylelint-config/stylistic és @wordpress/stylelint-config/scss-stylistic. A „stylistic” változatok formázási szabályokat (például behúzást) is hozzáadnak.
Futtatás:
npx stylelint "**/*.css"npx stylelint "**/*.css" --fixA globot tedd idézőjelbe. A --fix a javítható problémákat kijavítja.
Futtatás a @wordpress/scripts-szel
Szekció neve “Futtatás a @wordpress/scripts-szel”A @wordpress/scripts három parancsot ad ehhez, a build, node_modules és vendor mappát alapból kihagyják:
{ "scripts": { "lint:js": "wp-scripts lint-js", "lint:css": "wp-scripts lint-style", "format": "wp-scripts format" }}wp-scripts lint-jsa JavaScript- és TypeScript-fájlokat ellenőrzi. Előbb azeslint.config.*fájlt keresi, ha nincs, a régi.eslintrc.*fájlra tér vissza.wp-scripts lint-stylea CSS-, PCSS- és SCSS-fájlokat ellenőrzi a@wordpress/stylelint-configalapján.wp-scripts formata JavaScript-, JSON-, TypeScript- és YAML-fájlokat formázza. A kihagyandó fájlokat a.prettierignorefájlban adhatod meg.
Mindháromnak megadhatsz fájlt, mappát vagy globot: wp-scripts lint-js ./src. A @wordpress/scripts többi parancsáról a külön cikkben olvashatsz.
Bedrock, Sage és bővítmények
Szekció neve “Bedrock, Sage és bővítmények”Bedrockban és Sage-ben a JavaScript és a CSS általában a témában (Sage) vagy a bővítményben van, nem a Bedrock gyökerében. A package.json-t és a konfigfájlokat oda tedd, ahol a front-end kód él, és az npm-parancsokat ott futtasd. A vendor és a build mappát hagyd ki az ellenőrzésből, mert nem a te kódod. A Bedrockról a Bedrock cikkben olvashatsz.
Szerkesztőből is használhatod őket: a VS Code cikke leírja a szerkesztő beállítását.
Mire figyelj
Szekció neve “Mire figyelj”- Egy formázó legyen. A
recommended-with-formattingaz ESLint saját formázását használja a Prettier helyett, ezért a kettőt ne keverd. - Az első
--writesok változást okoz. Futtasd külön commitban, hogy a későbbi változtatások olvashatók maradjanak. - A
--fixátírja a fájlokat. Futtatás előtt legyen a változás commitolva. - CI-ban ne javítson. Csak ellenőrizzen (
prettier --check,eslint--fixnélkül), hogy a hibás kód ne kerüljön be amainágra. Futtathatod GitHub Actionsben is.
Hasznos linkek
Szekció neve “Hasznos linkek”Published: