π Angularda qo'llash
Angular loyihasiga Prettier, ESLint va Husky integratsiyasi β bu kod sifati va jamoaviy ishlashni avtomatlashtirish uchun eng yaxshi yondashuvlardan biridir. Quyida bosqichma-bosqich toβliq master darajadagi integratsiya yoβriqnomasi keltirilgan:
β 1-QADAM: Yangi Angular loyiha yarating (agar mavjud boβlmasa)
ng new my-angular-app
cd my-angular-app
β 2-QADAM: ESLint ni oβrnatish va TSLintβni almashtirish
ng add @angular-eslint/schematics
Bu quyidagilarni avtomatik qiladi:
.eslintrc.jsonfaylini yarataditslint.jsonni olib tashlaydi- Angular builderβga
eslintni qoβshadi
π§ͺ Test:
ng lint
β 3-QADAM: Prettier oβrnatish va sozlash
npm install --save-dev prettier eslint-config-prettier
π§ .prettierrc faylini yarating:
{
"singleQuote": true,
"semi": true,
"printWidth": 100,
"tabWidth": 2
}
π§ .prettierignore fayl:
dist
node_modules
coverage
β
4-QADAM: VSCode uchun settings.json sozlash
.vscode/settings.json:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
β 5-QADAM: Husky + lint-staged ni oβrnatish
npm install --save-dev husky lint-staged
npx husky init
π§ Husky hook yaratish:
.husky/pre-commit
npx lint-staged
β
6-QADAM: package.jsonga lint-staged qoβshish
"lint-staged": {
"*.{ts,html}": [
"ng lint --fix"
],
"*.{js,json,scss,css}": [
"prettier --write"
]
},
ng lint --fix- bir muammo bo'lishi ehtimoli bor xatolik berayotgan faylni logda ko'rsata olmasligi mumkin shu sababli eslint orqalieslint --fixcommandni ishga tushurishimiz ham mumkin.
"lint-staged": {
"*.{ts,html}": [
"eslint --fix"
],
"*.{js,json,scss,css}": [
"prettier --write"
]
}
Har bir
git commitoldidan avtomatik tekshiruv va formatlash ishlaydi.
β 7-QADAM: Amaliy test
- Kodni buzib yozing (
app.component.tsichida notoβgβri formatlang) git add .git commit -m "Test"β€ Huskypre-commithook ishga tushadi- Kod ESLint + Prettier orqali avtomatik tozalanadi
β
BONUS: format va lint script qoβshish
"scripts": {
"format": "prettier --write .",
"lint": "ng lint",
"prepare": "husky"
}
π Xulosa jadvali:
| Vosita | Vazifasi | Qayerda ishlaydi |
|---|---|---|
| ESLint | Xatolarni tekshiradi | ng lint, commit oldidan |
| Prettier | Kodni formatlaydi | VSCode, husky, CLI |
| Husky | Git hookβlarni boshqaradi | pre-commit, pre-push |
| lint-staged | Faqat commit qilingan fayllarni tekshiradi | Husky hook ichida |
π Arxitektura holati:
my-angular-app/
βββ .eslintrc.json
βββ .prettierrc
βββ .prettierignore
βββ .husky/
β βββ pre-commit
βββ .vscode/
β βββ settings.json
βββ package.json
