Tak na JavaScript jednoznačne a bez okolkov by som povinne používal eslint a ako základ by som zvolil konfiguráciu od AirBnb. Jednak je to už dnes najviac používaný linter a jednak je najrozšíriteľnejší.
Navrhoval by som to spraviť tak, že vytvoríme repozitár v našej organizácii s názvom javascript
, v ňom vytvoríme package.json
a ako npm dependency nainštalujeme eslint-config-airbnb
. Ďalej vytvoríme súbor .eslintrc
(kľudne sa môže názov poupraviť ak ich budeme mať viac) a v ňom využijeme extend. V tomto súbore môžeme pozmeniť sensible defaults z predvoleného airbnb súboru s ktorými nebudeme súhlasiť.
Potom v každom FE projekte budeme využívať ten náš custom .eslintrc
, ktorý sme vyššie vytvorili a to rovnakým spôsobom za použitia extend, kedže to eslint umožňuje používať aj pri viacnásobnom “rozširovaní”. Nemusíme vôbec nič publishovať na public npm, keďže npm umožňuje inštalovať deps priamo z GitHubu (ale aj GitLabu a BitBucketu).
V eslint sa dajú nastaviť 3 rôzne úrovne hlásenia - vypnuté, warning a error, pričom posledné menované spôsobuje chybový exit kód, čiže toto vieme využiť na CI serveri na zabránenie buildu kódu, ktorý nepodlieha naším coding pravidlám. Zároveň, ak dôjde k situácii, že niečo sa v novej verzii eslint sprísni a začnú nám padať buildy vieme veľmi ľahko a rýchlo dočasne vypnúť problémové pravidlo a neskôr po oprave kódu ho naspäť zapnúť práve vďaka tomu, že naše aplikácie budú mať ako dependency náš javascript coding styleguide z jeho master vetvy, takže akonáhle sa pushnu zmeny do remote repozitára na GH, prejavia sa vo všetkých projektoch (toto samozrejme vieme podľa potrieb regulovať aj vytváraním dočasných vetiev).
Snáď je to pochopiteľné. Prepáčte za totálne dumb vysvetlenie, ale keďže neviem nakoľko, kto pozná eslint, radšej som sa snažil to vysvetliť polopatisticky. Inak viem s tým pomôcť takže stačí sa dohodnúť a môžem to celé setupnúť a predviesť. Používali sme tento setup vo firme a fungovalo to veľmi dobre a spoľahlivo.
Ešte dodám, že hlavne pri projektoch, kde je vysoká pravdepodobnosť, že na ňom bude robiť veľa ľudí časom má význam enforcovať veľmi striktnú politiku na písanie kódu, ktorý potom vyzerá úplne rovnako vo všetkých aplikáciach danej organizácie a vyzerá, ako by ho písall jeden človek.
K CSS potom existuje obdobná vec - stylelint ktorá je mimoriadne podobná svojmu JS bratovi.