2017-01-03 1 views
0

Quelqu'un peut-il m'aider à comprendre comment utiliser BrowserSync avec un serveur de noeud déjà en cours d'exécution?Utilisation de BrowserSync avec seulement Node.js (MEAN)

Je sais que je dois proxy le serveur localhost:3000 mais où et comment ferais-je cela?

Comme je n'utilise pas Gulp/Grunt, je suppose que vous utilisez un BrowserSync avec express.js, mais à quoi cela ressemblerait-il?

EDIT:

@ La réponse de RunnyYolk est correcte, la meilleure façon est de créer un script dans le fichier package.json qui a BrowserSync proxy votre serveur de nœud. Cependant, le problème est plus spécifiquement de savoir comment utiliser BrowserSync lorsque vous devez attendre qu'un processus se termine en premier, comme la compilation Angular, puis rechargez votre navigateur.

Mon processus de construction ressemble à ceci:

"build": "del-cli public/js/app && webpack --config webpack.config.dev.js --progress --profile --watch",

Comment appeler browser-sync reload après compilation webpack?

Répondre

2

J'ai eu la synchronisation du navigateur en cours d'exécution avec quelques projets de noeud. Je me souviens que c'était un peu un violon les premières fois, mais ça en valait vraiment la peine.

Je ne me souviens pas exactement ce que je me suis pris, mais essayer ces choses et me faire savoir si elle est toujours pas jouer:

En supposant-synchronisation du navigateur est installé, assurez-vous que votre fichier app.js (ou tout ce que vous avez appelé); a le serveur écoute sur le port 3000.

Démarrez l'application avec une commande similaire à ceci:

browser-sync start --proxy localhost:3000 --files="public/stylesheets/*.css", "public/scripts/*.js" "public/views/*.ejs" --no-notify

qui fonctionne pour moi. "--files" est une liste de fichiers pour la synchronisation du navigateur à regarder, et --no-notify se débarrasse de certaines notifications qui se déclenchent à chaque changement de fichier - peut-être utile dans certaines situations, mais je les ai trouvés agaçants.

En regardant cette commande, je remarque qu'il n'y a aucune référence à node app.js pour démarrer l'application. Je suppose (bien que je ne sois pas certain) que bowser-sync regarde à l'intérieur de package.json pour le script "start". Donc, si mon hypothèse est correcte, et si la commande ci-dessus ne fonctionne pas pour vous, vérifiez que votre fichier package.json a le script inclus.

+0

Génial @RunnyYolk! La seule chose qui se passe maintenant est que la compilation d'Angular ne se fait pas assez vite et que BSync recharge avant que cela ne soit fait. Je dois en quelque sorte l'obtenir pour recharger après le processus de construction ... – BenRacicot

+0

Glad that helps! Je ne connais pas si bien Angular, mais obtenir la synchronisation du navigateur pour regarder tous les fichiers qui changent pendant le processus de compilation devrait fonctionner pour vous. Ajoutez simplement leurs chemins à la liste. –

+0

Ok, donc le problème est que Angular doit exécuter un processus de construction chaque fois que n'importe quel fichier change. Je dois déclencher le 'recharger de synchronisation de navigateur 'seulement après que ce processus finisse. Peut-être streaming avec '|' pas sûr ... – BenRacicot