De opdrachtregel voor webontwerp Live Reload & BrowserSync

In de laatste les leerde je hoe je je hele project kon compileren of bouwen met korte commando's zoals knorren, gegrom horloge, slok en kloof kijken.

In deze les leert u hoe u opdrachten kunt maken die een extra laag geweldig aan uw projecten toevoegen, waardoor live herladen en browsersynchronisatie mogelijk is.

Als u de andere zelfstudies in deze serie nog niet hebt voltooid, gaat u terug en voltooit u deze voordat u hier begint.

Live Reload

Notitie: Om verwarring te voorkomen, is er een desktop-app en een combinatie van een Chrome-plug-in met de naam LiveReload, die vaak wordt gebruikt in combinatie met veel npm-pakketten voor automatisch herladen. Met de manier waarop we ons echter zullen instellen, zijn de desktop-apps en de browserplug-in niet vereist.

Live Reload via Grunt

Om live herladen mogelijk te maken, moet er een localhost zijn die kan worden vernieuwd, dat wil zeggen een manier om uw site lokaal te bekijken door een webhost te simuleren met een http: // protocol in plaats van het dossier://

Met je Grunt-project zorgen we ervoor dat een localhost de statische bestanden van je project kan weergeven en live die localhost kan herladen, met behulp van de grunt-express plug-in.

Installeer grunt-express in uw project met:

npm install grunt-express --save-dev

Schakel vervolgens de plug-in in uw Gruntfile in door deze onder uw bestaande toe te voegen grunt.loadNpmTasks lijnen:

grunt.loadNpmTasks ( 'grunt-express');

Configureer de uitdrukkelijke taak door deze code toe te voegen:

 express: all: options: bases: 'build', livereload: true, open: 'http: // localhost: 3000',

Dat merk je in onze uitdrukken taakconfiguratie hebben we de livereload optie ingesteld op waar, dus nadat onze lokale preview is gestart, wordt deze automatisch opnieuw geladen wanneer er wijzigingen worden gedetecteerd.

Nu voegen we een nieuwe taak met de naam begin. We zullen deze taak gebruiken om beide te activeren uitdrukken taak en de kijk maar taak tegelijk.

Voeg dit toe onder je bestaande grunt.registerTask lijn:

grunt.registerTask ('start', ['express', 'watch']);

Voer nu het commando uit: 

grunt start

... en je zou je standaardbrowser moeten zien opengaan met je projectvoorbeeld erbinnen.

De kijk maar taak is nu actief en compileert uw Stylus- en Jade-wijzigingen in de map "build".

Express controleert op zijn beurt de map "build" op eventuele wijzigingen. Als uw HTML-, CSS- of JS-bestanden opnieuw worden gecompileerd, wordt uw voorbeeld automatisch opnieuw geladen.

LiveReload via Gulp

Vervolgens gaan we door met het behalen van hetzelfde type lokalehostvoorbeeld in uw Gulp-project. Deze keer gaan we de slik-connect-plugin gebruiken.

Installeer gulp-connect in uw project met deze opdracht:

npm install --save-dev gulp-connect

Maak het toegankelijk in je Gulpfile door deze regel toe te voegen onder de andere regels waar je de hebt gebruikt vereisen() functie:

var connect = require ('gulp-connect');

Stel een nieuwe taak met de naam in aansluiten door deze code toe te voegen aan je andere taakcode:

gulp.task ('connect', function () connect.server (root: 'build', livereload: true, open: true););

Zoals we met Grunt hebben gedaan, gaan we nu een aangepaste taak met de naam maken begin die zowel onze localhost-preview start en onze watch-taak initieert.

Voeg deze regel toe aan de onderkant van uw Gulpfile:

gulp.task ('start', ['connect', 'watch']);

Om herladen van onze localhost preview mogelijk te maken, gaan we een andere "pipe" verbinden met het einde van beide css en html taken.

Voeg deze reloadtrigger toe aan het einde van elk:

.leiding (connect.reload ())

De taken worden:

gulp.task ('css', function () gulp.src ('source / stylus / main.styl') .pipe (stylus (kompres: false, paths: ['source / stylus'])) .pipe (autoprefixer ()) .pipe (minifyCSS ()) .pipe (hernoemen ('style.css')) .pipe (gulp.dest ('build')) .pipe (connect.reload ()));

... en:

gulp.task ('html', function () gulp.src ('source / jade / *. jade') .pipe (jade ()) .pipe (gulp.dest ('build')) .pipe (verbinden. reload ()));

Voer nu het commando uit: 

slok begin

... ga dan naar http: // localhost: 8080 en u ziet een voorbeeld van uw lokale site. 

Sla een wijziging op in uw Jade- of Stylus-bestanden en bekijk de bliksemsnelle hercompilering en herlaad!

BrowserSync

Nu u uw localhost-preview automatisch opnieuw laadt, kunt u dat laten en nog steeds een eersteklas ontwikkelingsproces instellen voor uw project. Als u echter cross-browser- en cross-device-testen wilt doen, is het ook de moeite waard om BrowserSync in beeld te hebben.

Met BrowserSync krijgt u een preview-URL die u in elke browser op uw machine kunt aansluiten, evenals browsers op elk ander apparaat op dezelfde internetverbinding.

Alle voorvertoningen die u uitvoert, worden vervolgens opnieuw geladen terwijl u wijzigingen aanbrengt, zodat u de resultaten over de hele linie kunt bekijken en al uw interacties op elk exemplaar worden gespiegeld. Als u in één browser scrolt of een menu opent, ziet u hoe elke andere browser en elk ander apparaat tegelijkertijd reageren.

BrowserSync via Grunt

Om de grunt-browser-sync-plug-in in uw Grunt-project te installeren, voert u de volgende opdracht uit:

npm install grunt-browser-sync --save-dev

Geef commentaar of verwijder de regel die je hebt gebruikt om grunt-express in te schakelen:

// grunt.loadNpmTasks ('grunt-express');

Voeg vervolgens deze regel toe om grunt-browser-sync in te schakelen:

grunt.loadNpmTasks ( 'grunt-browser-sync');

Geef commentaar of verwijder de uitdrukken taak die u eerder hebt gemaakt en voeg deze configuratiecode toe voor de taak browserSync in plaats daarvan:

 browserSync: bsFiles: src: ['build / *. css', 'build / *. html'], options: watchTask: true, server: baseDir: "build",

Zoek uw begin taak en verander het zodat het de browserSync taak in plaats van de uitdrukken taak, van:

grunt.registerTask ('start', ['express', 'watch']);

… naar:

grunt.registerTask ('start', ['browserSync', 'watch']);

Nu, wanneer u de opdracht uitvoert:

grunt start

... u ziet nog steeds een voorbeeld van een lokale host geopend en deze wordt nog steeds opnieuw geladen wanneer u wijzigingen opslaat, maar het verschil is nu dat de browsersynchronisatie actief is, net als de mogelijkheid om uw voorbeeld op andere apparaten te bekijken. 

In de terminal na het starten van uw BrowserSync-server ziet u dit:

- Lokaal: http: // localhost: 3000 Extern: http://192.168.1.3:3000 - UI: http: // localhost: 3001 UI External: http://192.168.1.3:3001 -

Pak het adres met het label lokaal, sla het in een aantal van de andere browsers op uw machine en voer het adres in dat is geëtiketteerd extern naar andere apparaten die dezelfde verbinding delen. Bekijk vervolgens de gesynchroniseerde antwoorden die u bij alle instanties tegenkomt terwijl u met een van hen omgaat.

Ga voor meer informatie over BrowserSync via Grunt naar: http://www.browsersync.io/docs/grunt/

BrowserSync via Gulp

Nu zullen we hetzelfde proces instellen, dit keer met behulp van de browser-sync plug-in voor Gulp.

Installeer de plug-in in uw Gulp-project met:

npm installeer browser-sync gulp --save-dev

Geef commentaar of verwijder de volgende regel:

// var connect = require ('gulp-connect');

... en vervang het door:

var browserSync = vereisen ('browsersynchronisatie');

Geef commentaar of verwijder de bestaande aansluiten taak en voeg deze nieuw toe browser-sync taak in plaats daarvan:

gulp.task ('browsersynchronisatie', functie () browserSync (server: baseDir: "build"););

Zoek aan het einde van de css en html-taken de twee plaatsen op waar je de regel hebt toegevoegd:

.leiding (connect.reload ())

... en vervang elk van deze twee regels door:

.leiding (browserSync.reload (stroom: true))

En zoek ten slotte uw bestaande begin taak en bewerk deze om de browser-sync taak in plaats van de aansluiten taak, ter vervanging van dit:

gulp.task ('start', ['connect', 'watch']);

… hiermee:

gulp.task ('start', ['browsersynchronisatie', 'kijk']);

Nu, wanneer u de opdracht uitvoert:

slok begin

... een browservenster wordt geopend met uw voorbeeld erin. Net zoals toen je BrowserSync via Grunt gebruikte, zullen de URL's van de preview nu in elke browser worden gesynchroniseerd op elk apparaat dat geen internetverbinding heeft.

Ga voor meer informatie over BrowserSync via Gulp naar: http://www.browsersync.io/docs/gulp/

In de volgende zelfstudie

U hebt nu alle essentiële zaken doorlopen van het opzetten van uw eigen projecten van nul tot het gebruik van de opdrachtregel tijdens de ontwikkeling. Maar wat als je niet vanaf nul wilt beginnen. Hoe zit het wanneer u bestaande frameworks van derden wilt gebruiken, of als u gewoon een voorsprong wilt nemen?

In de volgende tutorial leer je hoe je de commandoregel gebruikt om compleet nieuwe projecten in slechts enkele ogenblikken te scaffolden, compleet met alle code van derden die ze nodig hebben, evenals Grunt of Gulp taakbeheer helemaal klaar en klaar om te gaan.

Ik zie je in de volgende tutorial!