पाठ 15 / 25

Custom ESLint Rules

Domain-specific linting needs के लिए custom rules लिखें।

कब custom rules लिखें

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

Simple custom rule

एक custom rule जो production code में console.log को forbid करता है।

// .eslintrc.js - custom rule
module.exports = {
  rules: {
    'no-prod-console': {
      create(context) {
        return {
          MemberExpression(node) {
            if (node.object.name === 'console' &&
                node.property.name === 'log' &&
                !context.getFilename().includes('.test.')) {
              context.report({ node, message: 'console.log not allowed in production' });
            }
          }
        };
      }
    }
  }
};

Output:

Custom rule defined: forbids console.log in prod

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

यदि आपका custom rule complex या reusable है, तो इसे eslint-plugin के रूप में package करें और share करें। Simple rules के लिए, इसे .eslintrc.js में inline करें।

त्वरित जाँच

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

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

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