CSS נקי ללא בדיקה ידנית: הטמעת Stylelint

קוד CSS בפרויקט גדל הופך בשקט לכאוס: כפילויות, מאפיינים לא חוקיים ושגיאות שחומקות אפילו מבדיקה ידנית. אנחנו מיישמים Stylelint—מגדירים אותו לפי מדריך הסגנון שלכם ומשלבים אותו עם Prettier, CI/CD והעורך שלכם. הצוות שלנו מספק פתרון סוהר כך שתקבלו CSS נקי ועקבי ללא בדיקות ידניות.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
CSS נקי ללא בדיקה ידנית: הטמעת Stylelint
פשוט
~2-3 שעות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

הפרויקט שלך גדל, וקוד ה-CSS הופך לכאוס: סלקטורים כפולים, מאפיינים לא תקינים, סדר לא מסודר. אפילו מפתחים מנוסים מבזבזים שעות על בדיקת קוד, ובכל זאת שגיאות עדיין מחליקות לייצור. Stylelint הוא התקן דה-פקטו לבדיקת CSS אוטומטית, אך ההגדרה דורשת הבנה של תחביר וכללים. אנו מיישמים Stylelint בפרויקטים: מגדירים אותו לפי מדריך הסגנון שלך, משתלבים עם Prettier, CI/CD ועורך. תוך 1-2 ימים מקבלים קוד CSS נקי ועקבי שהלינטר בודק אוטומטית.

למה Stylelint במקום Prettier?

Stylelint ו-Prettier פותרים בעיות שונות. Prettier מעצב אוטומטית הזחות, מרכאות, מעברי שורה. Stylelint מוצא שגיאות: מאפייני CSS שאינם קיימים, יחידות לא נכונות (px במקום rem), סלקטורים כפולים, הפרות סדר. בפועל, הם משלימים זה את זה: Prettier הופך את הקוד לאחיד, Stylelint הופך אותו לנכון. ללא Stylelint, הפרויקט שלך נמצא בסיכון לבאגים ששום בדיקת קוד לא תתפוס.

אילו בעיות Stylelint פותר?

שגיאות אמיתיות ש-Stylelint תופס אוטומטית:

  • color-no-invalid-hex — צבעי hex לא תקינים (#abcde)
  • unit-no-unknown — יחידות לא ידועות (20pxx)
  • property-no-unknown — מאפיינים שאינם קיימים (dispay: flex)
  • declaration-block-no-duplicate-properties — מאפיינים כפולים בבלוק אחד
  • no-duplicate-selectors — סלקטורים זהים במקומות שונים
  • selector-class-pattern — הפרות מוסכמות שמות (BEM, kebab-case)

מהניסיון שלנו: עבור לקוח מסחר אלקטרוני גדול במשך חודש, מצאנו 150+ סלקטורים כפולים שהגדילו את משקל ה-CSS ב-30%. לאחר הגדרת Stylelint, שגיאות כאלה ירדו לאפס. החיסכון בתיקון הכפילויות בלבד היה כ-$2000 בהתחשב בזמן המפתחים.

איך אנו מגדירים Stylelint: מקרה מפורט

עבור פרויקט React המשתמש ב-Emotion, אנו מוסיפים @stylelint/postcss-css-in-js, כותבים כללים ל-styled-components, ומבטלים בדיקות למאפיינים שנקבעו דרך אובייקט styles. התוצאה: הלינטר בודק את כל קריאות ה-CSS-in-JS כמו קבצי CSS רגילים. כפי שנאמר בתיעוד הרשמי, Stylelint הוא "לינטר מודרני ועוצמתי שעוזר לך להימנע משגיאות ולאכוף מוסכמות בגיליונות הסגנון שלך" (תיעוד Stylelint).

התקנה

npm install --save-dev stylelint stylelint-config-standard stylelint-config-standard-scss stylelint-order
npm install --save-dev @stylelint/postcss-css-in-js postcss-syntax
דוגמת הגדרה ל-SCSS עם סדר מאפיינים
{
  "extends": [
    "stylelint-config-standard",
    "stylelint-config-standard-scss"
  ],
  "plugins": ["stylelint-order"],
  "rules": {
    "color-named": "never",
    "color-no-invalid-hex": true,
    "unit-no-unknown": true,
    "property-no-unknown": true,
    "declaration-block-no-duplicate-properties": true,
    "no-duplicate-selectors": true,
    "selector-class-pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$",
    "order/properties-order": [
      "content",
      "position",
      "top",
      "right",
      "bottom",
      "left",
      "z-index",
      "display",
      "flex",
      "flex-direction",
      "flex-wrap",
      "align-items",
      "justify-content",
      "grid",
      "grid-template",
      "width",
      "min-width",
      "max-width",
      "height",
      "min-height",
      "max-height",
      "margin",
      "margin-top",
      "margin-right",
      "margin-bottom",
      "margin-left",
      "padding",
      "padding-top",
      "padding-right",
      "padding-bottom",
      "padding-left",
      "border",
      "border-radius",
      "background",
      "background-color",
      "color",
      "font",
      "font-size",
      "font-weight",
      "line-height",
      "transition",
      "animation",
      "cursor",
      "pointer-events",
      "opacity",
      "overflow",
      "visibility"
    ]
  }
}

אנו מגדירים סדר מאפיינים שיתאים למדריך הסגנון שלך. ניתן לפשט לקבוצות ללא סדר קפדני בתוך הקבוצות. להגדרה אנו משתמשים בתוסף npm install --save-dev stylelint stylelint-config-standard stylelint-config-standard-scss stylelint-order npm install --save-dev @stylelint/postcss-css-in-js postcss-syntax : בכלל { "extends": [ "stylelint-config-standard", "stylelint-config-standard-scss" ], "plugins": ["stylelint-order"], "rules": { "color-named": "never", "color-no-invalid-hex": true, "unit-no-unknown": true, "property-no-unknown": true, "declaration-block-no-duplicate-properties": true, "no-duplicate-selectors": true, "selector-class-pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "order/properties-order": [ "content", "position", "top", "right", "bottom", "left", "z-index", "display", "flex", "flex-direction", "flex-wrap", "align-items", "justify-content", "grid", "grid-template", "width", "min-width", "max-width", "height", "min-height", "max-height", "margin", "margin-top", "margin-right", "margin-bottom", "margin-left", "padding", "padding-top", "padding-right", "padding-bottom", "padding-left", "border", "border-radius", "background", "background-color", "color", "font", "font-size", "font-weight", "line-height", "transition", "animation", "cursor", "pointer-events", "opacity", "overflow", "visibility" ] } } ניתן להגדיר סדר מדויק או קיבוץ.

Tailwind CSS

עבור Tailwind אנו מבטלים בדיקות לכללי at-rules:

{
  "extends": ["stylelint-config-standard", "stylelint-config-tailwindcss"],
  "rules": {
    "at-rule-no-unknown": [
      true,
      {
        "ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen", "layer"]
      }
    ]
  }
}

CSS-in-JS (styled-components, emotion)

{
  "overrides": [
    {
      "files": ["**/*.{js,jsx,ts,tsx}"],
      "customSyntax": "@stylelint/postcss-css-in-js",
      "rules": {
        "color-named": "never",
        "property-no-unknown": true
      }
    }
  ]
}

ניתן לקרוא עוד על CSS-in-JS בוויקיפדיה.

שילוב בעורך

התקן את התוסף stylelint-order והגדר את settings.json, תוך ביטול הלינטר המובנה של VS Code עבור CSS/SCSS. אפשר תיקון אוטומטי בשמירה.

איך Stylelint מאיץ את בדיקת הקוד?

השוואה: ללא לינטר, מפתח מבזבז 10-15 דקות בבדיקת סגנונות ב-pull request. Stylelint תופס 95% מהבעיות אוטומטית; רק שאלות ארכיטקטוניות נשארות לבדיקת הקוד. לפי המדידות שלנו, צוות של 5 חוסך עד 80% מהזמן בבדיקות CSS. עם תעריף ממוצע של $50 לשעה, זה חוסך כ-$6000 בחודש. יתרה מכך, עלות תיקון שגיאת CSS אחת לאחר שחרור יכולה להגיע ל-$200, ו-Stylelint מונע עלויות כאלה.

פרמטר ללא Stylelint עם Stylelint
שגיאות בסגנונות 15-20 לכל PR 1-2 (שהלינטר פספס)
זמן בדיקת קוד 15 דקות 2 דקות
באגים בייצור באופן קבוע מקרים בודדים

Stylelint מוצא שגיאות פי 5 מהר יותר מבדיקה ידנית: PR ממוצע נבדק ב-2 דקות במקום 15. חיסכון בזמן בדיקת קוד עד 80%. אנו מבטיחים שאחרי ההגדרה שלנו, מספר שגיאות ה-CSS ירד ב-90%. קבלו ייעוץ להגדרת Stylelint לפרויקט שלכם.

טעויות נפוצות בהגדרת Stylelint

  • קונפליקט עם Prettier: אם לא מבטלים כללים מיותרים, הם מתחילים לסתור זה את זה. השתמשו ב-order/properties-order.
  • התעלמות מפרה-מעבדים: עבור SCSS צריך את התצורה { "extends": ["stylelint-config-standard", "stylelint-config-tailwindcss"], "rules": { "at-rule-no-unknown": [true, { "ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen", "layer"] }] } } , אחרת הלינטר לא יבין קינון.
  • חוסר ב-pre-commit hook: ללא husky ו-lint-staged, הלינטר רץ רק ידנית או ב-CI—הערך יורד.

מה כלול בהגדרת Stylelint?

  • קובץ תצורה { "overrides": [ { "files": ["**/*.{js,jsx,ts,tsx}"], "customSyntax": "@stylelint/postcss-css-in-js", "rules": { "color-named": "never", "property-no-unknown": true } } ] } עם כללים מותאמים
  • שילוב עם Prettier (אם נדרש)
  • Pre-commit hook (husky + lint-staged)
  • סקריפטים ל-CI (פקודה stylelint.vscode-stylelint ב-pipeline)
  • תיעוד כללים וחריגים
  • הדרכת צוות (הדגמה של 30 דקות)

תהליך

  1. ניתוח — לימוד הקוד הנוכחי, פרה-מעבדים, מדריך סגנון, מסגרות (Tailwind? CSS-in-JS?).
  2. בחירת תצורה — סטנדרטית, scss, tailwindcss, css-modules — או שילוב.
  3. הגדרת כללים — התאמה למוסכמות השמות שלך, סדר מאפיינים, מאפייני פרויקט.
  4. שילוב — הוספה ל-bundler (webpack/vite), pre-commit hook (husky), CI (GitHub Actions/GitLab CI).
  5. בדיקה — הרצת לינטר על כל הפרויקט, תיקון שגיאות ראשוניות, תיעוד.
  6. תיעוד — מסירת תצורה, הוראות למפתחים, המלצות לשיפור.

לוחות זמנים משוערים

שלב זמן
הגדרה בסיסית (CSS/SCSS) 1-2 שעות
הוספת סדר מאפיינים ותבניות מותאמות +1 שעה
שילוב עם CI ו-pre-commit +1 שעה
הגדרה ל-CSS-in-JS או Tailwind +1-2 שעות

סה"כ: מיום עבודה אחד עד יומיים תלוי במורכבות. צרו קשר—נעריך את הקוד שלכם ונכין תצורה מוכנה.