Gulp - Et verktøysett for automatisering av smertefulle oppgaver under utvikling
Gulp er et lite verktøysett som automatiserer repeterende oppgaver. Disse repeterende oppgavene er vanligvis å kompilere CSS, JavaScript-filer eller i utgangspunktet når du bruker et rammeverk som omhandler ikke-standard JavaScript/CSS-filer, vil du bruke et automatiseringsverktøy som tar tak i disse filene, pakker dem sammen og kompilerer alt slik at nettleseren din enkelt kan forstå den.
Gulp er nyttig for å automatisere følgende oppgaver:
- Kompilering av JS- og CSS-filer
- Oppdaterer nettlesersiden når du lagrer en fil
- Kjør en enhetstest
- Kodeanalyse
- Kopierer endrede filer til en målkatalog
For å holde styr på alle filene du trenger for å lage en gulp-fil, utvikle automatiseringsverktøyet eller automatisere oppgaver, må du generere en package.json-fil. Filen inneholder i utgangspunktet forklaring på hva som er inne i prosjektet ditt, hvilke avhengigheter du trenger for å få prosjektet til å fungere.
I denne opplæringen skal du lære hvordan du installerer Gulp og hvordan du automatiserer noen grunnleggende oppgaver for prosjektene dine. Vi skal bruke npm – som står for node package manager. Den er installert med Node.js, og du kan sjekke om du allerede har installert Nodejs og npm med:
# node --version # npm --version
Hvis du ikke allerede har det installert på systemet ditt, anbefaler jeg deg å sjekke opplæringen: Installer siste Nodejs og NPM-versjon i Linux-systemer.
Hvordan installere Gulp i Linux
Installasjon av gulp-cli kan fullføres med npm ved å bruke følgende kommando.
# npm install --global gulp-cli
Hvis du ønsker å installere gulp-modulen lokalt (kun for det aktuelle prosjektet), kan du bruke instruksjonene nedenfor:
Opprett en prosjektkatalog og naviger i den:
# mkdir myproject # cd myproject
Deretter bruker du følgende kommando for å initialisere prosjektet:
# npm init
Etter å ha kjørt kommandoen ovenfor, vil du bli stilt en rekke spørsmål for å gi prosjektet ditt et navn, versjonsbeskrivelse og andre. Bekreft til slutt all informasjonen du har gitt:
Nå kan vi installere gulp-pakken i prosjektet vårt med:
# npm install --save-dev gulp
Alternativet --save-dev
ber npm oppdatere filen package.json med de nye devDependencies.
Merk at devDependencies må løses under utvikling, mens Dependencies under kjøretid. Siden gulp er et verktøy som hjelper oss i utviklingen, må det løses på utviklingstidspunktet.
La oss nå lage en gulpfile. Oppgaver vi ønsker å kjøre vil bli funnet i den filen. Den lastes automatisk når du bruker gulp-kommandoen. Bruk et tekstredigeringsprogram, lag en fil med navnet gulpfile.js. For formålet med denne opplæringen skal vi lage en enkel test.
Du kan sette inn følgende kode i gulpfile.js:
var gulp = require('gulp'); gulp.task('hello', function(done) { console.log('Hello world!'); done(); });
Lagre filen og prøv nå å kjøre den med:
# gulp hello
Du bør se følgende resultat:
Her er hva koden ovenfor gjør:
- var gulp = require(‘gulp’); – importerer gulp-modulen.
- gulp.task(‘hei’, function(done) { – definerer en oppgave som vil være tilgjengelig fra kommandolinjen.
- console.log(‘Hei verden!’); – bare skriver ut «Hallo verden!» til skjermen.
- ferdig(); – vi bruker denne tilbakeringingsfunksjonen for å instruere gulp om at oppgavene våre er fullført.
Selvfølgelig var ovenstående bare et eksempel for å vise hvordan gulpfile.js kan organiseres. Hvis du vil se de tilgjengelige oppgavene fra gulpfile.js, kan du bruke følgende kommando:
# gulp --tasks
Gulp har tusenvis av plugins tilgjengelig, som alle gir forskjellig funksjonalitet. Du kan sjekke dem på Gulps plugin-side.
Nedenfor vil vi bruke minify-html plugin i et mer praktisk eksempel. Med funksjonen nedenfor kan du forminske HTML-filer og plassere dem i en ny katalog. Men først skal vi installere gulp-minify-html plugin:
# npm install --save-dev gulp-minify-html
Du kan få gulpfile.js til å se slik ut:
# cat gulpfile.js
// including plugins var gulp = require('gulp') , minifyHtml = require("gulp-minify-html"); // task gulp.task('minify-html', function (done) { gulp.src('./src/*.html') // path to your files .pipe(minifyHtml()) .pipe(gulp.dest('./dest')); done() });
Deretter kan du forminske HTML-filer ved å bruke følgende kommandoer.
# gulp minify-html # du -sh /src dest/
Gulp er et nyttig verktøysett som kan hjelpe deg med å forbedre produktiviteten. Hvis du er interessert i dette verktøyet, anbefaler jeg deg å sjekke dokumentasjonssiden, som er tilgjengelig her.