Ontwikkelen met Sass en Chrome DevTools

In dit artikel zullen we bekijken hoe we Chrome DevTools beter kunnen integreren in onze Sass-ontwikkelingsworkflow.


Tutorial Sneak Peek!

Hier is een voorproefje van wat we in deze zelfstudie doen via een geanimeerde GIF:


Aan de linkerkant is een terminal en de Sublime-teksteditor en aan de rechterkant is Chrome. Wijzigingen in de .SCSS bestand wordt op schijf bewaard. Dit wordt weerspiegeld in Sublime en de opdracht Sass watch genereert een nieuwe versie van een CSS-bestand wanneer het wijzigingen in het Sass-bestand detecteert, die op hun beurt worden opgehaald door DevTools en op de pagina worden gereflecteerd.


De behoefte aan een betere workflow

Dus wat proberen we hier op te lossen? Waarom zouden we een betere workflow willen? Laten we een voorbeeld bekijken van het debuggen van een aantal door Sass gegenereerde CSS, gegeven het volgende .SCSS bestand, dat bevat:

$ myColor: groen; body .box color: $ myColor; 

En nu ziet de CSS, die wordt gegenereerd door het bovenstaande Sass-bestand er als volgt uit:

body .box kleur: groen; 

Nu hebben we gewoon een beetje HTML nodig om onze styling toe te passen op:

Hallo

Ok, tot nu toe zo goed. Nu willen we beginnen met het ontwerpen en ontwikkelen van onze pagina met Chrome DevTools. Eerst inspecteren we de div met een klasse van doos door er met de rechtermuisknop op te klikken en te selecteren Inspecteer Element. Dan kunnen we het deelvenster met stijlen bekijken, dat een groene waarde voor de kleur eigenschap, een opmerking over de bestandsnaam waarin deze zich bevindt, samen met het regelnummer waarop de selector staat. Dit is het probleem, de verwerkte CSS volgt niet, regel voor regel, wat de bron is .SCSS bestand ziet eruit als, wat een negatieve impact kan hebben op onze ontwikkelingsworkflow.


In de afbeelding hierboven toont het linkerdeelvenster een bron .SCSS bestand en de rechterkant toont de verwerkte versie. (Opmerking: ik gebruik de SCSS-bundel voor syntax highlighting in Sublime-tekst)


DevTools biedt vervolgens een koppeling naar het bestand en regelnummer van de selector, gemarkeerd in rood hierboven, wat niet verwonderlijk linken naar het verwerkte bestand (afbeelding hieronder). Dit werkt nu als een beperking voor het bewerken van het bestand binnen DevTools, omdat we niet kunnen profiteren van het opslaan van bestanden. Als we bijvoorbeeld wijzigingen in het verwerkte bestand doorvoeren, worden ze gewoon overschreven wanneer Sass vervolgens wordt uitgevoerd.

In feite hebben we zelfs geen duidelijke indicatie van wat het corresponderende regelnummer is - in de praktijk is ons bovenstaande voorbeeld erg eenvoudig en kunnen we heel snel begrijpen welke lijnmappen datgene zijn, door naar de code te kijken. Maar in een groter .SCSS bestand kunnen dingen lastiger worden.


Zoals je hierboven kunt zien, heeft DevTools geen inzicht in ons .SCSS bestand kunnen we dit echter aanpakken door gebruik te maken van een DevTools- en Sass-workflow, wat we in deze tutorial zullen bekijken. Samenvattend kan een gebrek aan Sass-ondersteuning in de DevTools betekenen:

  • We weten niet onmiddellijk het regelnummer waarover een selector en / of CSS-eigenschap bestaat, in ons bronbestand.
  • Het volhouden van onze CSS-wijzigingen aan het bestandssysteem is vrijwel uitgesloten.
  • Zelfs gewoon kijken naar de .SCSS Het bestand in het bronnenpaneel is moeilijk omdat DevTools de extensie niet herkent als een extensie die moet worden bekeken.

Voorbereiding op Sass-ondersteuning

Chrome

Belangrijk: Sass-ondersteuning is een experimentele functie. Houd er rekening mee dat, hoewel het al een tijdje bestaat, er dingen kunnen veranderen. Als ze dat doen, doen we ons best om dit artikel dienovereenkomstig bij te werken.

Laten we nu gaan naar about: vlaggen in de omnibox, zoek dan Experten voor ontwikkelaarstools inschakelen, schakel het in en start Chrome opnieuw.


De afbeelding hieronder toont een experimentenpaneel. U kunt dit bereiken door op het tandwiel in de rechteronderhoek van DevTools te klikken en te klikken op 'experimenten', vink het hokje aan voor Ondersteuning voor Sass.


Na het sluiten en openen van DevTools, kunt u nu naar de Algemeen menu-item in de linkerzijbalk van de instellingen venster en navigeer naar de bronnen sectie, van daar, vink 'Schakel bronkaarten in'en'CSS automatisch opnieuw laden na opslaan van Sass'. De time-out kan worden overgelaten aan de standaardwaarde.


Sass

Deze tutorial maakt gebruik van de nieuwste versie van Sass (3.3.0 op het moment van schrijven) omdat er enige initiële ondersteuning is voor bronkaarten. Hier leest u hoe u Sass kunt installeren met Rubygems:

gem installeer sass --pre

We moeten nu Sass vertellen om onze te compileren .SCSS bestanden, met behulp van de volgende opdracht:

sass --watch --scss --sourcemap styles.scss: styles.css

Van bovenaf, de styles.scss is uw bronbestand en de styles.css is het verwerkte bestand dat uw HTML-pagina zou gebruiken. Hier is hoe je zou linken in de verwerkte .css het dossier:

Als je iets ziet dat lijkt op de afbeelding hieronder in je terminal:


... en je ziet een gegenereerde .kaart bestand dan gefeliciteerd: Sass debugging werkt! Dit is wat de andere opdrachtopties doen met de vorige compileeropdracht:

  • --kijk maar: Zal ​​kijken naar wijzigingen in de bron .SCSS bestand en compileer het zodra het een verandering heeft gedetecteerd.
  • --SCSS: Laat zien welke stijl van Sass we gebruiken.
  • --sourcemap: Genereert overeenkomstige bronkaartbestanden.

Nu is het hebben van inzicht in bronkaarten niet essentieel om mee te volgen, maar het is zeker iets dat het lezen waard is, omdat het bedoeld is om het ontwikkelingsproces te helpen. Zie hieronder voor een paar bronnen op bronkaarten:

  • Inleiding tot JavaScript Bronkaarten op HTML5Rocks
  • Bronkaarten: talen, hulpmiddelen en andere informatie over Github
  • Bronkaarten 101 op Nettuts

Van elementen tot bronnen


Ervan uitgaande dat alles goed ging, zou het openen van uw pagina waar Sass-ondersteuning is ingeschakeld in DevTools Sass-foutopsporing mogelijk moeten maken. Het eerste ding om op te merken is dat de bestandsnaam de corresponderende zal tonen .SCSS bronbestand, wat handig is, daarnaast geeft het regelnummer correct het regelnummer weer in ons bronbestand.


Als u op de bestandsnaam klikt, gaat u rechts naar het bronpaneel met de lijn die overeenkomt met de betreffende selector gemarkeerd.

Opmerking: je hebt nu een zichtbaar Sass-bestand in je browser met syntaxisaccentuering!


Ok, dus het vinden van de overeenkomstige CSS-kiezer in het Elements-paneel is cool, maar hoe zit het met CSS-eigenschappen?

In de onderstaande schermafbeelding is de bronnen panel heeft gewezen op de CSS-eigenschap waarin ik geïnteresseerd was, om daar te komen die ik had Command-Aangeklikte op het eigendom vanuit de Elements paneel. Het feit dat het me naar de regel heeft gebracht waar de waarde is gedefinieerd (in plaats van de regel: eigenschap: $ waarde;) is erg krachtig!


Notitie: Navigeren naar een CSS-eigenschap in het bronvenster vanaf een opdracht die op de eigenschap klikt in het paneel Elementen is niet specifiek voor Sass, maar kan ook worden bereikt met reguliere CSS.


Sass-bewerking met persistente wijzigingen

Het bewerken van een Sass-bestand is niet veel anders dan het bewerken van een standaard CSS-bestand, een ding dat we echter moeten doen is zorgen dat DevTools weet waar de .SCSS bestand bevindt zich op in het bestandssysteem. Van binnenuit bronnen paneel, de linkerzijbalk moet een bronnen deelvenster dat de .SCSS bestand, klik er met de rechtermuisknop op en kies Opslaan als, overschrijf dan het bestaande .SCSS bron bestand.


Omdat we hebben gecontroleerd 'CSS automatisch opnieuw laden na opslaan van Sassen omdat Sass in de terminal loopt met de kijk maar vlag, veranderingen worden vrij snel aangebracht en de DevTools kunnen ons die veranderingen laten zien.

Zelfs mixins werken zoals verwacht en plakken het volgende in een bijna lege ruimte .SCSS bestand binnen de bronnen panel resulteert in het genereren van de juiste CSS, die DevTools binnen een seconde kan herladen.

@mixin-knop border: 2px effen groen; weergave: inline-block; opvulling: 10px; grensradius: 4px;  .box @ opnemen knop; 

Zoals u in de bovenstaande afbeelding kunt zien, ziet u aan de linkerkant het .SCSS bronbestand, dat is wat we zouden veranderen, de rechterkant toont de gegenereerde .css bestand dat DevTools heeft opgehaald verandert (bijna onmiddellijk dankzij de kijk maar vlag in de terminal)


Sass Debugging op Fluent Conf

Paul Irish gaf een goed gesprek op Fluent met veel sappige informatie over de Chrome DevTools, maar ook met het gebruik van Sass. Ga vooruit naar 05:30 voor de Sass-informatie.


Samenvatting

Laten we enkele van de belangrijkste punten bespreken die in deze tutorial worden besproken:

  • Sass-functies in Chrome DevTools zijn een geweldige manier om Sass-bronnen te bekijken en te wijzigen, maar vergeet niet om deze in te schakelen in beide about: vlaggen en in de instellingen paneel.
  • Wanneer u Sass en de Chrome DevTools in een project gebruikt, hebt u waarschijnlijk een efficiëntere werkstroom met het bekijken / bewerken van het bronbestand in plaats van het gegenereerde bestand.
  • CSS-eigenschappen in de elementen paneel kan zijn Command-geklikt, de bestandsnaam die rechts van de selector wordt weergegeven, is ook aanklikbaar. Beide brengen u naar het relevante gedeelte in het bronnenpaneel.
  • Gebruik de bronnen bewerkingsmogelijkheden van het paneel door een 'Opslaan als' op de .SCSS bestand, toekomstige opslaan (Command + S) moet het bestand overschrijven.
  • Chrome Canary en de nieuwste versie van Sass 3.3.0 (vanwege bronkaarten) zijn in deze zelfstudie gebruikt, probeer ze uit!

Interessante links

Zoals je ziet, is de ontwikkelworkflow met Sass niet perfect, maar het is absoluut veel beter dan wat het vroeger was. Naarmate de tijd vordert, zal DevTools zorgen voor een meer gestroomlijnde workflow voor het bewerken van CSS-bestanden en zullen fouten worden verholpen! Alle problemen die u tegenkomt, kunnen als een bug worden opgeworpen op crbug.com.

  • Debug LESS met Chrome Developer Tools door Rob Dodson
  • Changeset: Web Inspector: SASS source mapping
  • Het breekpunt Ep. 2 - Na ongeveer 3 minuten heeft het een Sass-demo
  • Sass-bronmappen gebruiken in WebKit Inspector - Op bricss.net
  • Sass debuggen met Source Maps - Door @Snugug

Bedankt voor het lezen van dit artikel!

Vind je het leuk wat je hebt geleerd? Meer informatie over Chrome DevTools!