web-dev-qa-db-fra.com

BrowserSync extrêmement lent

J'aimerais utiliser BrowserSync pour le développement. Cependant, le chargement de la page (pas seulement le rechargement après les modifications) est extrêmement lent.

J'utilise le mode proxy. Parcourir la page sans BrowserSync est rapide comme il se doit.

Une des raisons peut être l'erreur suivante lorsque j'installe BrowserSync:

> [email protected] install /usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/engine.io/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
SOLINK_MODULE(target) Release/bufferutil.node
SOLINK_MODULE(target) Release/bufferutil.node: Finished
CXX(target) Release/obj.target/validation/src/validation.o
SOLINK_MODULE(target) Release/validation.node
SOLINK_MODULE(target) Release/validation.node: Finished

J'ai installé le noeud à partir de rien (en utilisant brew et le programme d'installation du paquet), mais je n'ai pas pu supprimer l'erreur.

De plus, cela ne fait aucune différence si BrowserSync est exécuté à l'aide de Gulp ou via la ligne de commande.

Une idée?

25
Rico Leuthold

La solution est assez simple - mais à mon humble avis, illogique. Mon instance locale était exécutée sous http://project.local. Le changer en http://project.dev a résolu le problème. Je suis sous OS X.

49
Rico Leuthold

Ce que vous rencontrez est probablement le résultat de recherches de Bonjour IPv6 émises pour des recherches DNS sur des domaines .local. Ces recherches IPv6 créent un délai d'attente jusqu'à l'émission de la recherche DNS IPv4 d'origine.

La solution de @RicoLeuthold fonctionne car les domaines .dev ne déclenchent pas de recherches Bonjour sur macOS. Mais il peut être terrible de changer tous vos vHosts si vous en avez déjà beaucoup exécutés sur des domaines .local avec des projets configurés pour utiliser également ces domaines .local.

SOLUTION ALTERNATIVE

Une alternative consiste à ajouter une entrée IPv6 localhost supplémentaire dans votre fichier hôtes (sous Linux:/etc/hosts, sous macOS généralement:/private/etc/hosts) pour chaque entrée IPv4 .local.

Changer le contenu de cet hôte ...

127.0.0.1   phpmyadmin.local
127.0.0.1   project1.local
127.0.0.1   project2.local

... à ce contenu des hôtes ...

::1 phpmyadmin.local
127.0.0.1   phpmyadmin.local
::1 project1.local
127.0.0.1   project1.local
::1 project2.local
127.0.0.1   project2.local

 
CONSEIL: UTILISER UN ÉDITEUR REGEXP

Si vous utilisez un éditeur tel qu'Atom ou Sublime Text, capable de rechercher/remplacer des expressions rationnelles, voici un modèle pour mettre à jour votre fichier hosts:

Search:
(127.0.0.1)(.*)$
Replace:
::1$2\n$1$2

Ce modèle ajoutera également des entrées IPv6 à l'entrée IPv4 localhost générale située en haut du fichier hosts. Après avoir fait la recherche/remplacement, vous devriez vérifier le haut de votre fichier pour une entrée dupliquée de ...

::1  localhost

... et supprimez l'un des doublons.

15
Jpsy

Dans mon cas, j'utilisais des fenêtres. Après avoir analysé l'onglet réseau sur firebug, j'ai remarqué que quelques images manquaient. Dès que j'ai corrigé les images, cela a fonctionné rapidement!

0
Maximus

J'ai essayé quelque chose d'autre et a très bien fonctionné pour moi.

J'ai désactivé IPv6 sur mon mac avec la commande suivante:

networksetup -setv6off Wi-Fi

Vous pouvez le rallumer comme ceci:

networksetup -setv6automatic Wi-Fi

Je ne voulais pas passer à .dev car tous mes sites sont configurés de la manière suivante:

Live site: https://www.myawesomesite.com
Local site: https://dev.myawesomesite.com
0
Patrick Hladun