SkillByAIइंटरैक्टिव संस्करण खोलें →

पाठ 15 / 27

Custom ESLint Rules

अपने codebase की ज़रूरी conventions लागू करने के लिए local plugin में custom ESLint rule लिखें।

कब custom rules लिखें

Standard rules आपके codebase के conventions को cover नहीं करते? उन्हें लागू करने के लिए एक custom rule लिखें। उदाहरण: specific naming patterns की आवश्यकता है, कुछ libraries को forbid करना है, architectural layers को लागू करना है।

Simple custom rule

एक local plugin में custom rule जो console.log मना करता है, और flat config में जुड़ा हुआ।

// eslint.config.js
const local = {
  rules: {
    'no-prod-console': {
      meta: { type: 'problem', schema: [] },
      create(context) {
        return {
          CallExpression(node) {
            const c = node.callee;
            if (c.type === 'MemberExpression' && c.object.name === 'console' && c.property.name === 'log') {
              context.report({ node, message: 'console.log is not allowed in production code' });
            }
          },
        };
      },
    },
  },
};

export default [
  { plugins: { local }, rules: { 'local/no-prod-console': 'error' } },
  { files: ['**/*.test.js'], rules: { 'local/no-prod-console': 'off' } },
];

Output:

Custom rule defined: forbids console.log in prod

Rules से बेहतर plugins को prefer करें

यदि rule जटिल या पुनः उपयोगी है तो उसे eslint-plugin के रूप में publish करें। सरल team rules eslint.config.js के भीतर local plugin object में रह सकते हैं।

त्वरित जाँच

त्वरित जाँच: कब एक custom ESLint rule लिखना चाहिए?

  • जब आपके codebase में unique conventions हैं जो standard rules cover नहीं करते।
  • सभी projects के लिए।
  • केवल बड़ी teams के लिए।
  • Core rules बंद करने के लिए
Answer

जब आपके codebase में unique conventions हैं जो standard rules cover नहीं करते। — Custom rules आपकी टीम के लिए unique architectural या style decisions को automate करते हैं।