IslomDevIslomDev
Booster
Booster
  • Booster Started

    • πŸ“š Prettier
    • πŸ“š ESLint
    • πŸ“š Husky
    • πŸ“š Angularda qo'llash

πŸ“š 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.json faylini yaratadi
  • tslint.json ni olib tashlaydi
  • Angular builder’ga eslint ni 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 orqali eslint --fix commandni ishga tushurishimiz ham mumkin.
"lint-staged": {
  "*.{ts,html}": [
    "eslint --fix"
  ],
  "*.{js,json,scss,css}": [
    "prettier --write"
  ]
}

Har bir git commit oldidan avtomatik tekshiruv va formatlash ishlaydi.


βœ… 7-QADAM: Amaliy test

  1. Kodni buzib yozing (app.component.ts ichida notoβ€˜gβ€˜ri formatlang)
  2. git add .
  3. git commit -m "Test" ➀ Husky pre-commit hook ishga tushadi
  4. Kod ESLint + Prettier orqali avtomatik tozalanadi

βœ… BONUS: format va lint script qoβ€˜shish

"scripts": {
  "format": "prettier --write .",
  "lint": "ng lint",
  "prepare": "husky"
}

πŸ“Š Xulosa jadvali:

VositaVazifasiQayerda ishlaydi
ESLintXatolarni tekshirading lint, commit oldidan
PrettierKodni formatlaydiVSCode, husky, CLI
HuskyGit hook’larni boshqaradipre-commit, pre-push
lint-stagedFaqat commit qilingan fayllarni tekshiradiHusky hook ichida

πŸ“ Arxitektura holati:

my-angular-app/
β”œβ”€β”€ .eslintrc.json
β”œβ”€β”€ .prettierrc
β”œβ”€β”€ .prettierignore
β”œβ”€β”€ .husky/
β”‚   └── pre-commit
β”œβ”€β”€ .vscode/
β”‚   └── settings.json
└── package.json
Prev
πŸ“š Husky