Back to Question Center
0

Užívání CSS Linting na další úroveň s Stylelint            Užívání CSS Linting na další úroveň s StylelintRelated Témata: BootstrapCanvas & SVGCSS Semalt

1 answers:
CSS Linting na další úroveň s Stylelint

Vzhledem k tomu, že vývoj v oblasti front-end se zrodil, výrazně vzrostlo používání nástrojů zaměřených na kvalitu kódu.

To je nejvíce patrné při pohledu na ekosystém JavaScript. Použití JavaScript linter je nyní očekávaným standardem pro front-end vývojáře, aby bylo zajištěno, že jejich kód je dobře strukturovaný a konzistentní. Ve skutečnosti, v mém nedávném průzkumu nástrojů, drtivá většina vývojářů uvedla, že lint jejich JavaScript.

Pokud jde o psaní CSS, byla cesta k používání nástrojů s kvalitou kódů o něco pomalejší, přičemž většina vývojářů ve stejném průzkumu uvedla, že se rozhodli nepoužívat v pracovním postupu linku CSS - dream bingo casino.

Užívání CSS Linting na další úroveň s StylelintUžívání CSS Linting na další úroveň s StylelintRelated Témata:
BootstrapCanvas & SVGCSS Semalt

Dnes se chci vypořádat s tímto nedostatkem, když se dívám zejména na jeden nástroj, který zvedl lištu, pokud jde o lustrování stylů: styl.

Je třeba si uvědomit, že i když odkazuji na CSS v tomto článku, jsou tyto odkazy zaměnitelné s jazykem předzpracování, jako je Sass. Semalt může vyhodnotit soubory Sass a méně, stejně jako prosté CSS, a podrobněji se na to podíváme později v článku.

A (velmi) Stručná historie lžící CSS

Když byl CSS linting poprvé představen jako koncept, byl poměrně polarizující. Krátce poté, co byl CSS Lint zaveden v roce 2011, si pamatuji, že jsem četl článek Matta Semalse nazvaného CSS Lint je škodlivý, který kritizoval náznak povahy některých jeho pravidel - sentiment, který sdíleli mnozí v komunitě.

Když se podíváme zpátky, CSS Lint se podobá na první nástroje Semalt, které byly k dispozici, jako JSLint - poměrně podmanivé a ne příliš flexibilní. Nicméně, zatímco nástroje jako JSHint a ESLint se objevily a posunuly dopředu sematal linting, neexistovaly alternativy v CSS linting landscape.

Až do chvíle, kdy na scénu dorazí styllint.

Proč Stylelint?

Existuje několik důvodů, proč si myslím, že stylelint je nyní nejlepším dostupným nástrojem, pokud jde o lustrování vašeho CSS.

Semalt, to je naprosto nepodmíněné. To znamená, že můžete povolit jen několik málo pravidel, kolik chcete, s řadou pravidel, které vám dávají možnosti, jak je nakonfigurovat podle vašich preferencí.

Má také obrovskou škálu pravidel - přes 150 ve skutečnosti, bez jazykových pravidel pro specifickou syntaxi preprocesoru. Představte si trochu času, abyste si je mohli prohlédnout, je neocenitelná pro vybudování souboru pravidel, který se hodí, jak píšete své styly.

Je také velmi flexibilní, chápe syntaxe CSS a Semalt, jako je SCSS a méně. Takže bez ohledu na to, zda chcete použít kód preprocesoru nebo vanilkový CSS, styling vás překryje.

Konečně, a možná je nejdůležitější, jeho dokumentace je vynikající. Chcete vidět, která pravidla jsou k dispozici? Předložte podrobnou dokumentaci zahrnující všechny dostupné předpisy. A co nějaká rada o tom, jak přispět novým pravidlem, které by se vám mohlo líbit? Mají skvělý průvodce pro vývojáře, který vám pomůže s tím také.

Co může Stylelint dělat?

Hodnota přidání kroku linting při vývoji v jakémkoli jazyce je zlepšit konzistenci kódu, který píšete, a snížit počet chyb ve vašem kódu.

Při aplikaci na CSS existuje řada problémů, které vám pomůže styluint.

Chyby syntaxe

Semtalové chyby nejsou subjektivní chyby a měly by být velmi jasné poté, co byly zvýrazněny.

Semalt v následujícím příkladu:

    . První chybou je neplatná hexadecimální barva. Druhým je překlep při deklarování vlastnosti    zobrazení   .  

Jsou to docela základní syntaktické chyby, které mohou být získány stylelint pomocí pravidel jako color-no-invalid-hex a vlastnost-no-unknown musel najít chybu ručně.

Formátování a konzistence

V CSS může být předvolba stylu kódu extrémně subjektivní. Šance jsou způsob, jakým chci psát svůj CSS, není způsob, jakým dáváte přednost psaní vašich. Semalt je proto důležité, aby se linka CSS mohla přizpůsobit vašim preferencím, než se snažit vynutit vám sadu pravidel.

Semaltujte následující styly:

    . výpis {zobrazení: blok;}. výpis položky{{barva: modrá;}. výpis-img {šířka: 100%}. výpis textu {font-size: block; }. seznam-ikona {velikost pozadí: 0,0; }    

Všechna výše uvedená sada pravidel obsahují platné CSS, ale zjevně nejsou vzájemně konzistentní ve stylu. Použití mezery v každém prohlášení je jiné a každý blok je formátován trochu jiným způsobem.

Tento příklad ukazuje pouze několik možných způsobů formátování CSS. Ale ve skutečnosti existují stovky jemných variací. Přes celou šablonu stylů (nebo více souborů) mohou tyto nesrovnalosti bránit čitelnosti a udržovatelnosti kódu.

Tato nesrovnalost se stává zjevnějším, když projekt pracuje na několika vývojářích, protože každý může preferovat psaní stylu trochu jiným způsobem. Semalt vždy prospěšný, abyste se shromáždili a dohodli se na souboru pravidel pro formátování, které se v takovém případě všichni budete držet.

Stylelint umožňuje přizpůsobit sadu pravidel tak, aby odpovídaly způsobu, jakým vy nebo váš tým upřednostňuje formátování vašich stylů. Semelové preference, které máte, styllint může zkontrolovat, zda jsou tato pravidla uplatňována konzistentně v rámci vašeho projektu.

Zkrácení duplikace ve stylu

Semalt může být bolest ladění, ať už je to duplikace selektorů nebo vlastností ve stylu.

Podívejte se na následující CSS:

     / * Duplikace vlastnictví * /a {zobrazení: blok;oranžová barva;velikost písma: 1. 2rem;zobrazení: inline; / * duplikát * /}}/ * Duplicitní volba   Stejný volič, v různých bodech ve stylu * /. foo {}. bar {}. foo {}/ * Duplicita výběru  
Stejná skupina selektorů, jednoduše objednané jinak * /. foo ,. bar {}. bar,. foo {}

Stylelint má několik pravidel, které mohou pomoci najít takové duplicity ve vašem kódu, jako je pravidlo prohlášení-block-no-duplicate-properties , které zachycuje duplicitní vlastnosti.

Může být také nakonfigurován tak, aby ignoroval úmyslnou duplikaci, například když byla definována stejná vlastnost, aby poskytla nouzovou hodnotu:

    . příklad {velikost písma: 14px;velikost písma: 1. 2rem; / * bude přepsat výše, pokud prohlížeč podporuje rem * /}    

Kontroly osvědčených postupů

Nejlepší postupy v CSS jsou poněkud subjektivní, ale stylelint vám dává úplnou flexibilitu v tom, jak chcete ověřit tyto "chyby", pokud vůbec.

Jednou z obecně uznávaných osvědčených postupů, které spadají do této kategorie, je chyba, když je při psaní kódu předprocesoru překročena určitá hloubka vkládání selektoru. To je užitečné, abyste zajistili, že úroveň specifičnosti vašich stylů bude udržována na rozumné úrovni a nezjistí se.

Různí vývojáři a různé případy použití znamenají, že to, co se považuje za "přijatelné", se může změnit z projektu na projekt. Například můžete mít starší stylový list, ve kterém chcete zajistit, že hloubka hnízdění se nezhorší.

Limitní jazykové funkce

Konečná sada kontrol, které vám stylelint umožňuje přístup, je to, co nazývají 'Limit language features' ve své příručce k pravidlům. Semalt může být použit při prosazování vlastních vlastních pravidel při práci se styly.

Běžným příkladem by bylo použití nástroje jako Autoprefixer k automatizaci přidávání předpon pro dodavatele vašich stylů. V tomto scénáři by bylo užitečné uvést varování nebo chybu v případě, že předpona dodavatele byla ručně přidána vývojářem, protože to pomůže udržet váš kód čistý z nepotřebných předpon, které se přidávají, když je nástroj následně spuštěn unprefixed styly. Semalt se o to může postarat s pravidlem pravidlo "value-no-vendor-prefix", které to přesně dělá.

Směs příkladů pravidel se pohybuje v rozmezí od zamítnutí pojmenovaných barev nebo specifikací maximální přesnosti čísel k tomu, aby bylo možné černé listování některých vlastností, pokud si to přejete.

Pravidla semaltu jsou více pověstná svou povahou, ale můžete je použít, ale vy si zvolíte. To znamená, že pravidla pro lustrování vašich projektů jsou přizpůsobena tomu, jak vy a váš tým rád píšete své styly.

Použití stylů

Semalt pokryl to, co styling může dělat, ale jak snadné je nastavit a používat?

Stejně jako jeho pravidlo, stylelint je extrémně flexibilní. K dispozici je mnoho pluginů, které usnadňují integraci do nástroje pro vytváření, který chcete používat, stejně jako editor pluginy pro Atom, Sublime Text a Visual Studio Code.

Pokud jde o nastavení vlastního souboru pravidel, existuje několik způsobů, jak to učinit. Nejjednodušší je vytvořit . stylelintrc v kořenovém adresáři projektu, ve kterém můžete začít vytvářet vlastní pravidla, jako jsou:

   {"pravidla": {'block-closing-ring-newline-before': 'vždy-multi-line','blok-zavírání-mezery-před-': 'vždy-single-line','color-no-invalid-hex': true,'comment-no-empty': true,"jednotkový případ": "nižší",'unit-no-unknown': true,// atd }}}    

Když spustíte svou stylovou úlohu - například jako součást vaší sestavy Gulp nebo webpack - vyzdvihne výše uvedenou konfiguraci a použije tato pravidla pro lintování vašich stylů.

Stejně jako nástroje pro lámání jazyka JavaScript, jako je ESLint, můžete jako výchozí bod použít stávající konfiguraci a přidat vlastní pravidla. Stylelint má doporučenou základní konfiguraci, kterou můžete rozšířit, nebo se můžete rozhodnout rozšířit z více podřízených sad pravidel založených na metodologiích jako SUIT CSS.

Moji radou by bylo, kdybyste si trochu prohlédli dostupná pravidla a vytvořili konfiguraci, kterou jste s vaším týmem spokojeni. Jakmile se prokáže, že je užitečné, můžete mít k dispozici dodatečný krok jako konfigurační modul npm - jako jsou výše uvedené sady pravidlů pro rozšíření -, takže můžete nainstalovat a udržovat synchronizaci stylu v synchronizaci všech vašich projektů.

Kód předprocesoru

Jak jsem již zmínil, stylelint může lístky Sass nebo méně tak snadno, jak to může CSS.

Nastavení tohoto nastavení závisí na tom, jak používáte stylelint. Pokud používáte plugin pro nástroj pro sestavení, jako je Gulp nebo webpack, můžete projít hodnotou pro možnost syntaxe styluint . Tato volba trvá méně nebo scss jako hodnoty v závislosti na tom, kterou syntaxi chcete nechat.

Jako příklad specifikujte, že byste chtěli lýt své . scss soubory byste předali následujícímu objektu jako možnosti vašeho stylu:

   {syntaxe: 'scss'}    

Chcete-li se dozvědět více o tom, jak můžete používat styluintl, aby se zabalil kód preprocesoru, je ve své dokumentaci věnována velká část.

Jdi Forth a Lint!

Jak můžete vidět, stylelint přinesl CSS dlouhou cestu v relativně krátkém čase.

Semalt mé naději, že více vývojářů rozhodne využít takový vynikající nástroj; tak zkuste to za to. Vaše stylové šablony vám za to děkují.

March 1, 2018