תמיכה ב-CSS וב-Baseline נוספה ל-ESLint

תאריך פרסום: 12 במרץ 2025, תאריך העדכון האחרון: 26 במרץ 2025

ESLint הוא כלי לבדיקת קוד (linter) שמועדף כבר הרבה זמן לשימוש עם JavaScript. הוא מציע מגוון הגדרות וכללים שעוזרים למפתחים להקפיד על סגנון טוב של JavaScript בפרויקטים שלהם. לאחרונה, ESLint השיקה תמיכה בבדיקת קוד (linting) של CSS בפרויקטים, ומציעה כללים נוספים לבדיקת היבטים של גיליונות סגנונות.

במסגרת השקת התמיכה ב-CSS, ‏ ESLint מציעה עכשיו את הכלל require-baseline, שמאפשר לכם לציין את ערך הסף של Baseline שבו אתם רוצים להשתמש כשאתם מבצעים linting של CSS בפרויקטים שלכם. בפוסט הקצר הזה נסביר איך להשתמש בכלל הזה כדי לוודא שקובץ ה-CSS עומד בסף של התכונות החדשות והזמינות באופן נרחב.

איך משתמשים ב-ESLint כדי לאכוף תכונות בסיסיות של CSS

אם השתמשתם ב-ESLint בעבר, התהליך של הוספת CSS linting לפרויקט שלכם אמור להיות מהיר למדי. כדי להתחיל, מתקינים את חבילת @eslint/css בפרויקט:

npm install @eslint/css --save-dev

אחרי ההתקנה, תוכלו להוסיף תמיכה ב-CSS linting לפרויקט שלכם על ידי ייבוא החבילה @eslint/css להגדרת ESLint הקיימת:

// 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"
      }]
    },
  },
];

השימוש ב-linting עבור CSS מועיל כשלעצמו, אבל הערך המוסף של ESLint הוא השימוש בכלל require-baseline של כלי ה-linter. בקטע הקוד שלמעלה, אזהרות נוצרות בכל פעם שנתקלים בתכונה שלא זמינה ב-Baseline Widely. המאפיין הזה מצוין באמצעות המאפיין available של הכלל, שמקבל גם את הערך "newly" כדי לוודא שכל התכונות של שירות ה-CSS שנעשה בהן שימוש הן לפחות ברמת הזמינות 'חדש'.

אחרי שמגדירים את הקובץ, אפשר להריץ את ESLint בשורש הפרויקט כדי לבדוק את ה-CSS של הפרויקט:

npx eslint

בסיום, ESLint יציג אזהרות לגבי ה-CSS של הפרויקט, שייראה כך:

/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, תוכלו לגרום לו לירוק את הפלט של ה-linter במהלך בניית הפרויקט באמצעות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 בלי מאמץ רב. כדאי לנסות! יכול להיות שתופתעו לגלות חלק מהתכונות של Baseline שנעשה בהן שימוש בפרויקט שלכם. למידע נוסף על אופן הפעולה של התכונה הזו, אפשר לקרוא את מאמרי העזרה בנושא כלל require-baseline.