La ligne de commande pour la conception Web Live Reload & BrowserSync

Dans la dernière leçon, vous avez appris à compiler ou à construire votre projet entier à l’aide de commandes courtes telles que grognement, grunt regarder, gorgée et regarder gulp.

Dans cette leçon, vous apprendrez à créer des commandes qui ajouteront une couche supplémentaire d’impressionnante à vos projets, permettant ainsi le rechargement en direct et la synchronisation du navigateur..

Si vous n'avez pas encore terminé les autres didacticiels de cette série, veuillez les compléter avant de commencer ici..

Live Recharger

RemarqueRemarque: pour éviter toute confusion, il existe une combinaison d'application de bureau et de plug-in Chrome, nommée LiveReload, qui est souvent utilisée avec de nombreux packages npm pour gérer le rechargement automatique. Cependant, avec la manière dont nous allons configurer, les applications de bureau et le plug-in de navigateur ne seront plus nécessaires..

Live Reload via Grunt

Afin de permettre le rechargement en direct, il doit exister un hôte local qui peut être actualisé, c’est-à-dire un moyen de visualiser votre site localement en simulant un hôte Web avec un http: // protocole au lieu de fichier://

Avec votre projet Grunt, nous nous chargeons de permettre à un localhost de servir les fichiers statiques de votre projet et de le recharger en direct en utilisant le plugin grunt-express..

Installez grunt-express dans votre projet avec:

npm installer grunt-express --save-dev

Puis activez le plugin dans votre Gruntfile en l’ajoutant en dessous de votre grunt.loadNpmTasks lignes:

grunt.loadNpmTasks ('grunt-express');

Configurez la tâche express en ajoutant ce code:

 express: all: options: bases: 'build', foieeload: true, ouvert: 'http: // localhost: 3000',

Vous remarquerez que dans notre Express configuration de la tâche, nous avons la foie option définie sur vrai, donc, après le lancement de notre aperçu local, il sera automatiquement rechargé chaque fois que des changements sont détectés.

Maintenant, nous allons ajouter une nouvelle tâche nommée début. Nous allons utiliser cette tâche pour déclencher à la fois le Express tâche et la regarder tâche à la fois.

Ajoutez ceci en dessous de votre existant grunt.registerTask ligne:

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

Maintenant, lancez la commande: 

grunt start

… Et vous devriez voir votre navigateur par défaut s'ouvrir avec l'aperçu de votre projet affiché à l'intérieur.

le regarder La tâche est en cours d'exécution et compilera vos modifications Stylus et Jade dans le dossier «build»..

Express surveille à son tour le dossier "build" pour détecter toute modification. Par conséquent, si vos fichiers HTML, CSS ou JS sont recompilés, ils rechargeront automatiquement votre aperçu..

LiveReload via Gulp

Nous procéderons ensuite au même type d’aperçu localhost dans votre projet Gulp. Cette fois, nous allons utiliser le plugin gulp-connect à la place.

Installez gulp-connect dans votre projet avec cette commande:

npm installer --save-dev gulp-connect

Rendez-le accessible dans votre Gulpfile en ajoutant cette ligne sous les autres lignes où vous avez utilisé le exiger() une fonction:

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

Configurez une nouvelle tâche nommée relier en ajoutant ce code sous votre autre code de tâche:

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

Comme nous l'avons fait avec Grunt, nous allons maintenant créer une tâche personnalisée nommée début qui lancera notre aperçu localhost et lancera notre tâche de surveillance.

Ajoutez cette ligne au bas de votre fichier Gulpfile:

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

Pour permettre le rechargement de notre aperçu localhost, nous allons connecter un autre "tuyau" à la fin du css et html les tâches.

Ajoutez ce déclencheur de rechargement à la fin de chacun:

.pipe (connect.reload ())

Faire des tâches devenir:

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

… et:

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

Maintenant, lancez la commande: 

gulp start

… Puis allez à http: // localhost: 8080 et vous verrez l'aperçu de votre site local. 

Enregistrez une modification dans l'un de vos fichiers Jade ou Stylus et regardez la recompilation et le rechargement rapides comme l'éclair.!

NavigateurSync

Maintenant que votre aperçu de localhost est automatiquement rechargé, vous pouvez le laisser et conserver une configuration de processus de développement de premier ordre pour votre projet. Cependant, quand il s'agit de pouvoir effectuer des tests sur plusieurs navigateurs et sur plusieurs périphériques, il est également important d’avoir BrowserSync dans l’image..

Avec BrowserSync, vous disposez d’une URL de prévisualisation que vous pouvez connecter à n’importe quel navigateur de votre ordinateur, ainsi qu’à tout autre appareil disposant de la même connexion Internet..

Tous les aperçus que vous exécutez seront ensuite rechargés au fur et à mesure que vous apportez des modifications afin que vous puissiez voir les résultats dans tous les domaines, et toutes vos interactions seront reflétées à chaque instance. Si vous faites défiler ou ouvrez un menu sur un navigateur, vous verrez comment tous les autres navigateurs et appareils répondent en même temps..

BrowserSync via Grunt

Pour installer le plug-in grunt-browser-sync dans votre projet Grunt, exécutez la commande suivante:

npm installer grunt-browser-sync --save-dev

Mettez en commentaire ou supprimez la ligne utilisée pour activer grunt-express:

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

Ajoutez ensuite cette ligne pour activer grunt-browser-sync à la place:

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

Commenter ou supprimer le Express tâche que vous avez créée précédemment et ajoutez ce code de configuration pour la tâche browserSync au lieu:

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

Localisez votre début tâche et le changer de sorte qu'il exécute le browserSync tâche au lieu de la Express tâche, de:

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

… à:

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

Maintenant, quand vous exécutez la commande:

grunt start

… Vous verrez toujours un aperçu localhost ouvert et il rechargera quand vous enregistrez les modifications, mais la différence est que la synchronisation du navigateur est active, tout comme la possibilité d'afficher votre aperçu sur d'autres appareils.. 

Après avoir démarré votre serveur BrowserSync, vous verrez ceci dans le terminal:

- Local: http: // localhost: 3000 Externe: http://192.168.1.3:3000 - Interface utilisateur: http: // localhost: 3001 UI Externe: http://192.168.1.3:3001 -

Prenez l'adresse marquée Local, insérez-le dans certains des autres navigateurs de votre ordinateur et entrez l’adresse intitulée Externe dans tout autre appareil partageant la même connexion. Observez ensuite les réponses synchronisées que vous obtenez sur toutes les instances lorsque vous interagissez avec l'une d'entre elles..

Pour plus d'informations sur BrowserSync via Grunt, rendez-vous sur: http://www.browsersync.io/docs/grunt/

BrowserSync via Gulp

Maintenant, nous allons configurer le même processus, cette fois en utilisant le plugin browser-sync pour Gulp.

Installez le plugin dans votre projet Gulp avec:

npm installer navigateur-sync gulp --save-dev

Commentez ou supprimez la cette ligne:

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

… Et le remplacer par:

var browserSync = require ('browser-sync');

Commentez ou supprimez l'existant relier tâche et ajouter dans cette nouvelle synchronisation du navigateur tâche à la place:

gulp.task ('browser-sync', function () browserSync (server: baseDir: "build"););

À la fin des tâches css et html, localisez les deux endroits où vous avez ajouté la ligne:

.pipe (connect.reload ())

… Et remplacez chacune de ces deux lignes par:

.pipe (browserSync.reload (stream: true))

Et enfin localiser votre existant début tâche et le modifier pour exécuter le synchronisation du navigateur tâche au lieu de la relier tâche, remplaçant ceci:

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

… avec ça:

gulp.task ('start', ['browser-sync', 'watch']);

Maintenant, quand vous exécutez la commande:

gulp start

… Une fenêtre de navigateur s'ouvrira avec votre aperçu. Tout comme lorsque vous utilisiez BrowserSync via Grunt, les URL de l'aperçu sont désormais synchronisées sur tous les navigateurs et sur tous les appareils fonctionnant hors connexion Internet..

Pour plus d'informations sur BrowserSync via Gulp, visitez: http://www.browsersync.io/docs/gulp/

Dans le prochain tutoriel

Vous avez maintenant défini tous les éléments essentiels de la configuration de vos propres projets pour tirer parti de la ligne de commande au cours du développement. Mais qu'en est-il lorsque vous ne voulez pas recommencer à zéro? Qu'en est-il du moment où vous souhaitez utiliser des infrastructures tierces existantes ou que vous souhaitez simplement prendre une longueur d'avance??

Dans le prochain didacticiel, vous apprendrez à utiliser la ligne de commande pour créer de nouveaux projets en quelques instants, avec tout le code tiers dont ils ont besoin, ainsi que la gestion des tâches Grunt ou Gulp, tous configurés et prêts à fonctionner..

Je te vois dans le prochain tutoriel!