ESLint में सीएसएस और बेसलाइन के लिए सहायता जोड़ी गई है

पब्लिश करने की तारीख: 12 मार्च, 2025

ESLint, JavaScript के लिए लंबे समय से पसंदीदा लिंटर है. इसमें कई तरह की सेटिंग और नियम होते हैं. इनसे डेवलपर को अपने प्रोजेक्ट में JavaScript के लिए अच्छी स्टाइल लागू करने में मदद मिलती है. हाल ही में, ESLint ने प्रोजेक्ट में सीएसएस को लिंट करने की सुविधा उपलब्ध कराई है. इसमें स्टाइलशीट के अलग-अलग पहलुओं की जांच करने के लिए, अतिरिक्त नियम दिए गए हैं.

सीएसएस के साथ काम करने की सुविधा लॉन्च करने के तहत, ESLint अब require-baseline नियम ऑफ़र करता है. इस नियम की मदद से, यह तय किया जा सकता है कि आपको अपने प्रोजेक्ट में सीएसएस को लिंट करते समय, बेसलाइन थ्रेशोल्ड का इस्तेमाल करना है या नहीं. इस पोस्ट में, आपको इस नियम का इस्तेमाल करने का तरीका बताया गया है. इससे यह पक्का किया जा सकेगा कि आपकी सीएसएस, नए और बड़े पैमाने पर उपलब्ध थ्रेशोल्ड के आधारभूत मानदंडों को पूरा कर रही है या नहीं.

बेसलाइन सीएसएस सुविधाओं को लागू करने के लिए, ESLint का इस्तेमाल करने का तरीका

अगर आपने पहले कभी ESLint का इस्तेमाल किया है, तो अपने प्रोजेक्ट में सीएसएस लिंटिंग जोड़ने की प्रोसेस तुरंत पूरी हो जाएगी. शुरू करने के लिए, अपने प्रोजेक्ट के लिए @eslint/css पैकेज इंस्टॉल करें:

npm install @eslint/css --save-dev

इंस्टॉल होने के बाद, अपने मौजूदा ESLint कॉन्फ़िगरेशन में @eslint/css पैकेज इंपोर्ट करके, अपने प्रोजेक्ट में CSS लिंटिंग की सुविधा जोड़ी जा सकती है:

// eslint.config.js
import css from "@eslint/css";

export default [
  // Lint css files
  {
    files: ["src/css/**/*.css"],
    plugins: {
      css,
    },
    language: "css/css",
    rules: {
      "css/no-duplicate-imports": "error",
      // Lint CSS files to ensure they are using
      // only Baseline Widely available features:
      "css/require-baseline": ["warn", {
        available: "widely"
      }]
    },
  },
];

सीएसएस के लिए लिंटिंग करना अपने-आप में फ़ायदेमंद है. हालांकि, ESLint में लिंटर के require-baseline नियम की मदद से, लिंटिंग करने में ज़्यादा फ़ायदा मिलता है. ऊपर दिए गए कोड स्निपेट में, जब भी कोई ऐसी सुविधा मिलती है जो बेसलाइन के तौर पर सभी के लिए उपलब्ध नहीं है, तब चेतावनियां जनरेट होती हैं. इसकी जानकारी, नियम की available प्रॉपर्टी से मिलती है. यह प्रॉपर्टी "newly" की वैल्यू भी स्वीकार करती है. इससे यह पक्का किया जा सकता है कि इस्तेमाल की गई सभी सीएसएस सुविधाएं, कम से कम बेसलाइन के तौर पर उपलब्ध हों.

कॉन्फ़िगरेशन सेट अप करने के बाद, अपने प्रोजेक्ट की CSS को लिंट करने के लिए, प्रोजेक्ट के रूट में ESLint को इस तरह चलाया जा सकता है:

npx eslint

प्रोसेस पूरी होने के बाद, ESLint आपके प्रोजेक्ट की सीएसएस के बारे में चेतावनियां देगा. ये चेतावनियां कुछ इस तरह दिखती हैं:

/var/www/my-cool-web-project/src/css/styles.css
  269:3   warning  Property 'overflow' is not a widely available baseline feature                     css/require-baseline
  427:3   warning  Property 'overflow' is not a widely available baseline feature                     css/require-baseline
  444:12  warning  Value 'contents' of property 'display' is not a widely available baseline feature  css/require-baseline
  500:3   warning  Property 'resize' is not a widely available baseline feature                       css/require-baseline
  573:5   warning  Property 'overflow' is not a widely available baseline feature                     css/require-baseline

ESLint में इस सुविधा को शामिल करने का एक बड़ा फ़ायदा यह है कि इसका इस्तेमाल, ESLint का इस्तेमाल करने वाले किसी भी टूल के वर्कफ़्लो में किया जा सकता है. उदाहरण के लिए, अगर webpack का इस्तेमाल किया जाता है, तो eslint-webpack-plugin का इस्तेमाल करके, प्रोजेक्ट के बिल्ड के दौरान लिंटर का आउटपुट देखा जा सकता है:

// Import the ESLint plugin:
import ESLintPlugin from "eslint-webpack-plugin";

// Webpack config:
export default {
  // Prior config code omitted...
  plugins: [
    new ESLintPlugin({
      // Add the `"css"` extension to ensure
      // CSS files are linted as well:
      extensions: ["js", "css"]
    })
  ]
};

ESLint में इन नई सुविधाओं के जुड़ने से, अब यह पक्का किया जा सकेगा कि आपके प्रोजेक्ट, बिना किसी अतिरिक्त मेहनत के Baseline CSS की सुविधाओं का इस्तेमाल कर रहे हैं. इसे आज़माएं! आपको यह जानकर हैरानी हो सकती है कि आपके प्रोजेक्ट में बेसलाइन की कुछ सुविधाओं का इस्तेमाल किया गया है. इसके काम करने के तरीके के बारे में ज़्यादा जानने के लिए, require-baseline नियम का दस्तावेज़ पढ़ें.