IslomDevIslomDev
Booster
Booster
  • Booster Started

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

๐Ÿ“š ESLint

ESLint โ€” Kod sifatini tekshiruvchi vosita

๐Ÿ” Muammo:

  • Kodda koโ€˜plab anti-pattern, unused variables, undefined oโ€˜zgaruvchilar boโ€˜lishi mumkin
  • Bu xatolar runtimeโ€™da chiqadi

๐Ÿ“˜ Nima bu?

  • ESLint โ€“ bu statik tahlil vositasi, JavaScript/TypeScript kodni yozilish paytida tekshiradi
  • rules, plugins va extends orqali sozlanadi

โœ… Hal qiladigan muammo:

  • Kod sifati oshadi
  • Yozilishdagi xatolar erta aniqlanadi
  • Yagona kod standarti shakllanadi

ESLint yordamida quyidagilar oldini olasiz:

  • var oโ€˜rniga let/const ishlatmaslik,
  • kerakmas console.log,
  • notoโ€˜gโ€˜ri nomlash,
  • importdan foydalanilmaslik,
  • ishlatilmagan oโ€˜zgaruvchilar va h.k.

๐Ÿ› ๏ธ Qanday ishlatiladi:

npm install --save-dev eslint
npx eslint --init

Bu sizdan bir nechta savollar soโ€˜raydi:

  • Qaysi texnologiyani ishlatyapsiz? (React, Vue, TypeScript, Node va h.k.)

  • Kod qayerda ishlaydi? (Browser, Node.js)

  • Kod yozish uslubini belgilaysiz (Airbnb, Standard, Prettier integratsiyasi)

  • JSON yoki YAML konfiguratsiya tanlaysiz.

  • eslint.config.mjs default:

import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import { defineConfig } from 'eslint/config'

export default defineConfig([
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,cts}'],
    plugins: { js },
    extends: ['js/recommended'],
  },
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,cts}'],
    languageOptions: { globals: globals.browser },
  },
  tseslint.configs.recommended,
])
  • eslint.config.mjs misol:
import js from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import { defineConfig } from 'eslint/config';
import tsParser from '@typescript-eslint/parser';

export default defineConfig([
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,cts}'],
    languageOptions: {
      parser: tsParser,
      parserOptions: {
        ecmaVersion: 'latest',
        sourceType: 'module',
      },
      globals: globals.browser,
    },
    plugins: {
      '@typescript-eslint': tseslint,
    },
    rules: {
      ...js.configs.recommended.rules,
      ...tseslint.configs.recommended.rules,
      'no-unused-vars': 'warn',
      'no-console': ['error', { allow: ['warn', 'error'] }],
      semi: ['error', 'always'],
      quotes: ['error', 'single'],
    },
  },
]);
  • Amalda:
npx eslint . --fix

๐ŸŽฏ Muhim jihatlar:

  • Har bir jamoa uchun custom rules tuzish mumkin
  • Plugin ekotizimi juda kuchli
  • Prettier bilan integratsiya qilish: eslint-config-prettier, eslint-plugin-prettier

๐ŸŸข Yutuqlari:

  • Katta jamoalarda sifatni boshqarish oson
  • Har xil muhitlarda (browser, node) sozlash mumkin
  • CI/CDda ishlatilishi mumkin

๐Ÿ”ด Kamchiliklari:

  • Toโ€˜gโ€˜ri konfiguratsiya qilish uchun vaqt kerak
  • Har doim avtomatik tuzatib boโ€˜lmaydi

Last Updated:: 6/25/25, 10:57 AM
Contributors: Islom1999
Prev
๐Ÿ“š Prettier
Next
๐Ÿ“š Husky