Goda nyheter! Vi har minifierat och kombinerat all vår CSS till en enda fil. Åh, förutom Bootstrap CSS! Vi har två bra alternativ. För det första kan vi peka på länken till en offentlig Bootstrap CDN. Eller så kan vi klämma in bootstrapstyling direkt i main.css
. Låt oss göra det – det är mycket intressantare.
Bower!
Bootstrap är installerat tack vare Bowser. Um, jag menar bower. Bowerär kompositören för frontend-tillgångar, som Bootstrap eller jQuery. Det är ett alternativ till att ladda ner filerna och lägga in dem i din repo.
Bower läser från, överraskande nog, en bower.json
fil:
Och när jag skapade projektet lade jag också till en .bowerrc
-fil. Denna berättade för bower att hämta saker till den här web/vendor
katalogen:
Det gjorde dem allmänt tillgängliga.
Men nu när vi har musklerna i Gulp vill jag komplicera saker och ting. Ändrade detta till att bli vendor/bower_components
:
Detta kommer att placera dessa filer utanför den offentliga katalogen, vilket till en början kommer att orsaka vissa problem. Ta bort de gamla sakerna:
rm -rf web/vendor
Hoppa till terminalen och ctrl+c ut ur gulp. Kör nu bower install
:
bower install
Om du inte har kommandot bower
är det bara att kolla in deras dokumentation. Det installeras globalt via npm, precis som gulp.
Det är gjort! Nu har jag en vacker bower_components
mapp i min vendor/
-katalog.
Att lägga till CSS-filer till vårt Gulp Styles Stream
Men även om jag skulle vilja ha två separata länktaggar i min layout kan jag inte göra det: Bootstrap kallar inte längre web/
-katalogen för hem. Så gör dig av med itslink-taggen.
I gulpfile.js
ska vi försöka fixa saker och ting! Jag börjar med att lägga till en ny konfigurationsvariabel som heter bowerDir
, eftersom det kommer att bli väldigt vanligt att hänvisa till saker i den katalogen. Ställ in den på vendor/bower_components
:
Om du öppnar den katalogen kan du se var filen bootstrap.css
bor. Observera att det inte är en Sass-fil – bara vanlig gammal CSS. Det finns faktiskt en Sass-version av Bootstrap, och du kan helt enkelt använda den i stället om du vill kontrollera dina Bootstrap-variabler.
Men frågan är om vi kan skicka vanliga CSS-filer genom vår Sass-processingaddStyle
-funktion? Javisst! Låt oss lägga till config.bowerDir
och sedan /bootstrap/dist/css/bootstrap.css
:
Och vi behöver inte ens oroa oss för att hämta min-filen, för det tar vi redan hand om. Den här filen kommer att gå genom sass
-filtret, men det är okej! Den kommer bara att se ut som den tråkigaste Sass-filen någonsin.
Kör tillbaka och kör gulp
:
gulp
Och nu börjar main.css
med härlig Bootstrap-kod. Och den skulle vara minifierad om jag hade använt flaggan --production
.
Vår webbplats borde fortfarande se bra ut. Så uppdatera. Japp, det är precis som förut, men med en mindre irriterande CSS-fil att ladda ner.
Omdöpa uppgiften till styles
Och innan vi fortsätter tror jag att vi kan göra ytterligare en förbättring. Vår uppgift heter sass
. Låt oss ändra detta till styles
, eftersom dess uppgift egentligen är att bearbeta stilar, oavsett om det är CSS- eller Sass-filer.
Vi måste också ändra det namnet på default
-uppgiften. Ooops, och innan du startar Gulp måste du också ändra namnet på uppgiften watch
till styles
:
Okej, nu kan vi prova saker och ting. ctrl+c för att stoppa Gulp, och starta det igen:
gulp
Ja, inga fel! Och webbplatsen ser fortfarande Tri-tastisk ut! Ser du vad jag gjorde där?