Back to Question Center
0

Λαμβάνοντας το CSS Linting στο επόμενο επίπεδο με το Stylelint            Λαμβάνοντας CSS Linting στο επόμενο επίπεδο με StylelintRelated Θέματα: BootstrapCanvas & SVGCSS Semalt

1 answers:
Λήψη CSS Linting στο επόμενο επίπεδο με Stylelint

Δεδομένου ότι η ανάπτυξη του front-end έχει ωριμάσει, η χρήση εργαλείων που αφορούν την ποιότητα του κώδικα έχει αυξηθεί σημαντικά.

Αυτό είναι ίσως πιο εμφανές κατά την εξέταση του οικοσυστήματος JavaScript. Η χρήση ενός linter JavaScript είναι πλέον το αναμενόμενο πρότυπο για τους προγραμματιστές του front-end να διασφαλίσουν ότι ο κώδικας τους είναι καλά δομημένος και συνεπής. Στην πραγματικότητα, στην πρόσφατη έρευνα εργαλείων, η συντριπτική πλειοψηφία των προγραμματιστών δήλωσε ότι χάνουν το JavaScript τους - wedding guest fascinators.

Όταν πρόκειται για το γράψιμο του CSS, η κίνηση προς χρήση των εργαλείων ποιότητας κώδικα ήταν ελαφρώς πιο αργή, καθώς η πλειοψηφία των προγραμματιστών στην ίδια έρευνα ανέφερε ότι επέλεξαν να μην χρησιμοποιούν στη γραμμή εργασίας τους γραμματοκιβώτιο CSS.

Λαμβάνοντας το CSS Linting στο επόμενο επίπεδο με το StylelintΛαμβάνοντας CSS Linting στο επόμενο επίπεδο με StylelintRelated Θέματα:
BootstrapCanvas & SVGCSS Semalt

Θέλω να αντιμετωπίσω αυτό το κενό σήμερα, κοιτάζοντας ένα εργαλείο ειδικότερα που έθεσε το μπαρ όταν πρόκειται για χάραξη στυλ στυλ: stylelint.

Αξίζει να σημειωθεί μπροστά ότι αν και αναφέρομαι στο CSS σε όλο αυτό το άρθρο, αυτές οι αναφορές είναι εναλλάξιμες με μια γλώσσα προεπεξεργασίας όπως η Sass. Το Semalt μπορεί να αξιολογήσει τα αρχεία Sass και Less καθώς και το απλό CSS και θα το εξετάσουμε λεπτομερέστερα αργότερα στο άρθρο.

A (πολύ) Σύντομη ιστορία της CSS Linting

Όταν το CSS λιπαντικό εισήχθη για πρώτη φορά ως έννοια, ήταν αρκετά πολωτικό. Λίγο μετά την εισαγωγή του CSS Lint το 2011, θυμάμαι ότι διαβάζοντας ένα άρθρο από τον Matt Semalt που ονομάζεται CSS Lint είναι επιβλαβές, το οποίο επικρίνει την αφηρημένη φύση ορισμένων από τους κανόνες του - ένα συναίσθημα που μοιράστηκε από πολλούς στην κοινότητα.

Κοιτάζοντας πίσω, το CSS Lint μοιάζει με τα πρώτα εργαλεία στίλβωσης Semalt που ήταν διαθέσιμα, όπως το JSLint - με διακριτικότητα και όχι πολύ ευέλικτο. Ωστόσο, ενώ εργαλεία όπως το JSHint και το ESLint εμφανίστηκαν και ώθησαν το Semalt να χρωματίσει προς τα εμπρός, οι εναλλακτικές λύσεις στο τοπίο CSS χνούδι ήταν ανύπαρκτες.

Αυτό συμβαίνει μέχρι να φτάσει το στυλ στη σκηνή.

Γιατί Stylelint;

Υπάρχουν μερικοί λόγοι για τους οποίους νομίζω ότι το stylelint είναι τώρα το καλύτερο εργαλείο που διατίθεται όταν πρόκειται για τη χρήση του CSS.

Semalt, είναι απολύτως απροβλημάτιστη. Αυτό σημαίνει ότι μπορείτε να ενεργοποιήσετε όσο λίγους ή πολλούς κανόνες θέλετε, με ορισμένους από τους κανόνες που σας δίνουν επιλογές για να τις διαμορφώσετε στις προτιμήσεις σας.

Επίσης, διαθέτει ένα τεράστιο φάσμα κανόνων - πάνω από 150 στην πραγματικότητα, χωρίς να συμπεριλαμβάνονται ειδικοί κανόνες γλώσσας για την ειδική σύνταξη του preprocessor. Η εξομοίωση ενός λίγο χρόνου για να εξετάσουμε μέσα από αυτά είναι ανεκτίμητη για την οικοδόμηση ενός συνόλου κανόνων που ταιριάζει με το πώς γράφετε τα στυλ σας.

Είναι επίσης πολύ ευέλικτο, κατανοώντας τη σύνταξη CSS και Semalt όπως SCSS και Less. Έτσι, αν θέλετε να κωδικοποιήσετε κωδικό προεπεξεργαστή ή CSS βανίλιας, το stylelint σας καλύπτει.

Τέλος, και ίσως το σημαντικότερο, η τεκμηρίωσή του είναι εξαιρετική. Θέλετε να δείτε ποιοι κανόνες είναι διαθέσιμοι; Επεξεργαστείτε λεπτομερώς την τεκμηρίωση που καλύπτει όλους τους διαθέσιμους κανόνες. Τι λέτε για κάποιες συμβουλές για το πώς να συνεισφέρετε έναν νέο κανόνα που θα θέλατε; Έχουν ένα μεγάλο οδηγό προγραμματιστών για να σας βοηθήσουν και με αυτό.

Τι μπορεί να κάνει το Stylelint;

Η αξία της προσθήκης ενός βήματος χαλάρωσης κατά την ανάπτυξη σε οποιαδήποτε γλώσσα είναι η βελτίωση της συνέπειας του κώδικα που γράφετε και η μείωση του αριθμού των σφαλμάτων στον κώδικά σας.

Όταν το εφαρμόζετε στο CSS, υπάρχουν ορισμένα θέματα που μπορεί να σας βοηθήσει στην αντιμετώπιση του στυλ.

Σφάλματα σύνταξης

Τα λάθη Semalt δεν είναι υποκειμενικά σφάλματα και πρέπει να είναι πολύ σαφή όταν επισημανθούν.

Ακολουθήστε το ακόλουθο παράδειγμα:

    . Το πρώτο σφάλμα είναι ένα μη έγκυρο δεκαεξαδικό χρώμα. Το δεύτερο είναι τυπογραφικό λάθος όταν δηλώνουμε την ιδιότητα εμφάνισης      .  

Αυτά είναι αρκετά βασικά σφάλματα σύνταξης που μπορούν να ληφθούν από το stylelint χρησιμοποιώντας κανόνες όπως color-no-invalid-hex και property-no-unknown να βρεθεί το λάθος με το χέρι.

Μορφοποίηση και συνοχή

Στο CSS, η προτίμηση του στυλ κώδικα μπορεί να είναι εξαιρετικά υποκειμενική. Οι πιθανότητες είναι ότι ο τρόπος που μου αρέσει να γράφω το CSS μου δεν είναι ο τρόπος που προτιμάς να γράψεις τα δικά σου. Εμπιστευτείτε λοιπόν σημαντικό ότι μια στρώση CSS μπορεί να προσαρμοστεί στις προτιμήσεις σας παρά να προσπαθήσει να επιβάλει ένα σύνολο κανόνων σε σας.

Σμικρύνουμε τις ακόλουθες μορφές:

    . καταχώρηση {οθόνη: μπλοκ?}. στοιχείο καταχώρισης{χρώμα: μπλε;}. listing-img {πλάτος: 100%}. εισαγωγή-κείμενο {font-size: block; }. εικονίδιο καταχώρισης {μέγεθος φόντου: 0,0; }    

Όλα τα παραπάνω κανόνα κανόνων περιέχουν έγκυρο CSS, αλλά σαφώς δεν συμφωνούν μεταξύ τους με στυλ. Η χρήση της απόστασης σε κάθε δήλωση είναι διαφορετική και κάθε μπλοκ έχει διαμορφωθεί με ελαφρώς διαφορετικό τρόπο.

Αυτό το παράδειγμα δείχνει μόνο μερικούς πιθανούς τρόπους μορφοποίησης του CSS. Αλλά στην πραγματικότητα υπάρχουν εκατοντάδες λεπτές παραλλαγές. Σε ένα ολόκληρο φύλλο στυλ (ή σε πολλά αρχεία), ασυνέπειες όπως αυτές μπορούν να παρεμποδίσουν την αναγνωσιμότητα και τη δυνατότητα συντήρησης του κώδικα.

Αυτή η ασυνέπεια γίνεται πιο εμφανής όταν ένα έργο επεξεργάζεται πολλοί προγραμματιστές, καθώς ο καθένας μπορεί να προτιμά να γράφει τα στυλ του με έναν ελαφρώς διαφορετικό τρόπο. Το Semalt είναι πάντα επωφελές για να συναντηθούμε και να συμφωνήσουμε σε ένα σύνολο κανόνων μορφοποίησης που όλοι θα επιμείνουμε σε μια τέτοια κατάσταση.

Το Stylelint σάς επιτρέπει να προσαρμόσετε ένα σύνολο κανόνων που να ταιριάζουν με τον τρόπο που εσείς ή η ομάδα σας προτιμάτε να μορφοποιήσετε τα στυλ σας. Οι προτιμήσεις Semalt που έχετε, το stylelint μπορεί να ελέγξει ότι αυτοί οι κανόνες εφαρμόζονται με συνέπεια στο έργο σας.

Μειώστε την αλληλεπικάλυψη σε στυλ

Το Semalt μπορεί να είναι ένας πόνος που μπορεί να διορθωθεί, είτε πρόκειται για την επικάλυψη επιλογέων είτε για ιδιότητες σε ένα φύλλο στυλ.

Ρίξτε μια ματιά στο ακόλουθο CSS:

     / * Διπλασιασμός ιδιοκτησίας * /ένα {οθόνη: μπλοκ?χρώμα πορτοκαλί;μέγεθος γραμματοσειράς: 1. 2rem;οθόνη: inline; / * αντίγραφο * /}}/ * Επικάλυψη επιλογής   Ίδιος επιλογέας, σε διαφορετικά σημεία στο φύλλο στυλ * /. foo {}. μπαρ {}. foo {}/ * Επικάλυψη επιλογής  
Η ίδια ομάδα επιλογέων, απλά παραγγέλθηκε διαφορετικά * /. foo ,. μπαρ {}. μπαρ,. foo {}

Το Stylelint έχει αρκετούς κανόνες που μπορούν να βοηθήσουν να εντοπιστεί αυτό το είδος αλληλεπικάλυψης στον κώδικα σας, όπως ο κανόνας block-no-duplicate-properties που θα καλύψει τις διπλές ιδιότητες.

Μπορεί επίσης να ρυθμιστεί ώστε να αγνοεί την σκόπιμη επανάληψη, όπως όταν η ίδια ιδιότητα έχει οριστεί για να παρέχει μια εφεδρική τιμή:

    . παράδειγμα {μέγεθος γραμματοσειράς: 14px;μέγεθος γραμματοσειράς: 1. 2rem; / * θα αντικαταστήσει τα παραπάνω αν το πρόγραμμα περιήγησης υποστηρίζει rem * /}    

Έλεγχοι βέλτιστης πρακτικής

Οι βέλτιστες πρακτικές στο CSS είναι κάπως υποκειμενικές, αλλά το stylelint σας δίνει πλήρη ευελιξία για το πώς θέλετε να ελέγξετε αυτά τα "σφάλματα", αν όχι καθόλου.

Μια κοινώς αποδεκτή βέλτιστη πρακτική που εμπίπτει σε αυτήν την κατηγορία θα ήταν να ρίξει ένα σφάλμα όταν ξεπεραστεί ένα συγκεκριμένο βάθος προσαρμογής του επιλογέα κατά την εγγραφή κώδικα προεπεξεργαστή. Αυτό είναι χρήσιμο για να διασφαλίσετε ότι το επίπεδο εξειδίκευσης των στυλ σας διατηρείται σε λογικό επίπεδο και δεν ξεφεύγει.

Διαφορετικοί προγραμματιστές και διαφορετικές περιπτώσεις χρήσης σημαίνουν ότι αυτό που θεωρείται «αποδεκτό» μπορεί να αλλάξει από έργο σε έργο. Για παράδειγμα, μπορεί να έχετε ένα παλιό φύλλο στυλ στο οποίο θέλετε να εξασφαλίσετε ότι το βάθος εμφάνισης δεν θα επιδεινωθεί.

Χαρακτηριστικά οριακής γλώσσας

Το τελευταίο σύνολο των ελέγχων που σας δίνει πρόσβαση στο stylelint είναι αυτό που ονομάζουν «Περιορισμός χαρακτηριστικών γλώσσας» στον οδηγό κανόνων τους. Το Semalt μπορεί να χρησιμοποιηθεί για την επιβολή των δικών σας κανόνων λειτουργίας όταν εργάζεστε με τα φύλλα στυλ σας.

Ένα κοινό παράδειγμα θα ήταν να χρησιμοποιήσετε ένα εργαλείο όπως το Autoprefixer για να αυτοματοποιήσετε την προσθήκη προθημάτων προμηθευτών στα στυλ σας. Σε αυτό το σενάριο, θα ήταν χρήσιμο να ρίξετε μια προειδοποίηση ή ένα σφάλμα εάν ένα πρόθεμα προμηθευτή έχει προστεθεί χειροκίνητα από έναν προγραμματιστή, καθώς αυτό θα σας βοηθήσει να διατηρήσετε τον κώδικα σας καθαρό από άχρηστα προθέματα που θα προστεθούν όταν το εργαλείο μεταφερθεί στη συνέχεια unprefixed styles. Το Semalt μπορεί να φροντίσει αυτό για εσάς με τον κανόνα του κανόνα του «κανόνα-μη-πωλητή-πρόθεμα», που κάνει ακριβώς αυτό.

Τα παραδείγματα των κανόνων που αφορούν τα πρότυπα κυμαίνονται από την απαγόρευση ονομαστικών χρωμάτων ή από τη μέγιστη ακρίβεια των αριθμών, ώστε να είναι δυνατή η μαύρη λίστα ορισμένων ιδιοτήτων, εάν το επιθυμείτε.

Οι κανόνες του Semalt είναι περισσότερο αντιληπτοί από τη φύση τους, αλλά μπορείτε να τις χρησιμοποιήσετε, ωστόσο, εσείς επιλέγετε. Αυτό σημαίνει ότι οι κανόνες για την εφαρμογή των σχεδίων σας είναι προσαρμοσμένοι στο πώς εσείς και η ομάδα σας επιθυμείτε να γράψετε τα στυλ σας.

Χρήση του Stylelint

Το Semalt κάλυψε τι στυλ μπορεί να κάνει, αλλά πόσο εύκολο είναι να δημιουργηθεί και να χρησιμοποιηθεί;

Όπως το set rule, το styling είναι εξαιρετικά ευέλικτο. Υπάρχουν διαθέσιμα πρόσθετα plugins που διευκολύνουν την ενσωμάτωσή τους σε οποιοδήποτε εργαλείο δημιουργίας προτιμάτε να χρησιμοποιήσετε, καθώς και plugins για Atom, Sublime Text και Visual Studio Code.

Όσον αφορά τη δημιουργία του δικού σας κανόνα κανόνων, υπάρχουν πολλοί τρόποι για να το κάνετε αυτό. Ο ευκολότερος τρόπος είναι να δημιουργήσετε ένα . stylelintrc στον ριζικό κατάλογο του έργου σας μέσα στον οποίο μπορείτε να αρχίσετε να δημιουργείτε δικούς σας κανόνες όπως:

   {"κανόνες": {'block-closing-brace-newline-πριν': 'πάντα-πολλαπλών γραμμών','block-closing-brace-space-before': 'always-single-line','color-no-invalid-hex': true,'comment-no-empty': true,"περίπτωση μονάδας": "χαμηλότερη",'unit-no-unknown': true,// και τα λοιπα }}}    

Όταν τρέχετε στη συνέχεια το έργο stylelint - για παράδειγμα, ως τμήμα της κατασκευής σας Gulp ή webpack - θα πάρει την παραπάνω διαμόρφωση και θα χρησιμοποιήσει αυτούς τους κανόνες για να χρωματίσει τα στυλ σας.

Παρόμοια με τα εργαλεία ξυστότητας JavaScript όπως το ESLint, μπορείτε επίσης να χρησιμοποιήσετε μια υπάρχουσα διαμόρφωση ως σημείο εκκίνησης και να προσθέσετε τους δικούς σας κανόνες. Το Stylelint έχει μια συνιστώμενη διαμόρφωση βάσης που μπορείτε να επεκτείνετε ή μπορείτε να επιλέξετε να επεκταθείτε από πιο καθοριζόμενα σύνολα κανόνων που βασίζονται σε μεθοδολογίες όπως το SUIT CSS.

Η συμβουλή μου είναι να αφιερώσω λίγο χρόνο για να κοιτάξω τους διαθέσιμους κανόνες και να δημιουργήσω μια διαμόρφωση που εσείς και η ομάδα σας είστε ευχαριστημένοι. Μόλις αποδειχθεί χρήσιμο, θα μπορούσατε να πάρετε το επιπλέον βήμα της διαθεσιμότητας της διαμόρφωσής σας ως εγκατεστημένης μονάδας npm - όπως τα επεκτάσιμα κανάλια κανόνα που αναφέρονται παραπάνω - για να μπορείτε να εγκαταστήσετε και να διατηρήσετε συγχρονισμένη τη διαμόρφωση του stylelint σε όλα τα έργα σας.

Κωδικός Προεπεξεργαστή Ξύλου

Όπως ανέφερα προηγουμένως, το styling μπορεί να χρωματίσει το Sass ή το λιγότερο τόσο εύκολα όσο μπορεί το CSS.

Η ρύθμιση αυτή εξαρτάται από τον τρόπο χρήσης του styling. Εάν χρησιμοποιείτε μια προσθήκη για ένα εργαλείο δημιουργίας όπως το Gulp ή το webpack, μπορείτε να περάσετε μια τιμή για την επιλογή σύνταξης του stylelint . Αυτή η επιλογή παίρνει λιγότερα ή scss ως τιμές ανάλογα με τη σύνταξη που επιθυμείτε να αφήσετε.

Για παράδειγμα, για να διευκρινίσετε ότι θα θέλατε να χρωματίσετε το δικό σας . scss , θα περάσετε το ακόλουθο αντικείμενο στις επιλογές σας στυλ:

   {σύνταξη: 'scss'}    

Αν θέλετε να μάθετε περισσότερα σχετικά με τον τρόπο με τον οποίο μπορείτε να χρησιμοποιήσετε το πρότυπο επεξεργασίας lint cod, έχετε μια μεγάλη ενότητα στην τεκμηρίωσή του που εξηγεί ακριβώς αυτό.

Πηγαίνετε Forth και Lint!

Όπως βλέπετε, το styllint έφερε το CSS σε μακρά διάρκεια σε σχετικά σύντομο χρονικό διάστημα.

Σιγουρευτώ την ελπίδα μου ότι περισσότεροι προγραμματιστές επιλέγουν να κάνουν χρήση ενός τέτοιου εξαιρετικού εργαλείου. οπότε προσπαθήστε να το πάρετε για περιστροφή. Τα φύλλα στυλ σας θα σας ευχαριστήσουν για αυτό.

March 1, 2018