Je ne peux pas sembler changer aucun de mes fichiers JavaScript sans redémarrer le serveur - il tue vraiment beaucoup de plaisir de rechargement en direct de travailler dans Phoenix. Je ne fais pas une tonne de JavaScript, donc je ne suis pas sûr de faire quelque chose de mal.Comment changer le Javascript sans redémarrer le serveur?
Version Phoenix: 1.2.0
Étapes pour reproduire:
- Créer un nouveau projet avec
mix phoenix.new foo
- Créer un fichier
web/static/js/foo.js
. - Dans ce fichier, écrire
alert("Hello, world!");
- En
app.js
, comprennentimport "web/static/js/foo"
au fond. Commencez Phoenix avecmix phoenix.server
et accédez àlocalhost:4000
. - Peu importe le nombre de fois que vous actualisez la page, vous verrez une boîte d'alerte avec "Bonjour tout le monde!" chaque fois, sans faute.
- Modifier le message
foo.js
pour être "Bonjour mondes!" - Je m'attends à recevoir un message d'alerte avec le texte mis à jour, mais les boîtes d'alerte cessent d'apparaître - au total. Ils commencent seulement à apparaître à nouveau lorsque je redémarre le serveur.
Est-ce un comportement prévu? Un bug à Phoenix? Est-ce que j'écris mon code JS d'une manière que Brunch ne m'attend pas? Est-ce un problème de Babel? Devrais-je organiser mon code différemment?
dois ajouter que je développe dans Chrome sur Linux - dans le cas où cela pourrait être un problème de navigateur
Edit: Je ne peux pas reproduire plus cette question précise, mais je suis encore avoir des problèmes avec ma non -toy project:
Mon numéro original était dans l'application que je suis en train de développer - où j'ai global.jQuery = require("jquery")
et global.bootstrap = require("bootstrap")
en app.js
. Si je commente ces deux lignes, enregistrer, et décommenter, je reçois une erreur Javascript dans le navigateur: app.js:16Uncaught Error: Cannot find module 'jquery' from 'web/static/js/app.js'
Qu'est-ce que vous obtenez lorsque rechargeant simplement navigateur au lieu de serveur? Eh bien, vous devez comprendre le script Java s'exécute côté client. –
"mais les boîtes d'alerte cessent d'apparaître - au total" Avez-vous des erreurs (éventuellement liées à Brunch) dans le terminal où vous avez lancé 'mix phoenix.server'? Avez-vous une erreur dans la console JS dans le navigateur? Est-ce que le fichier JS contient le nouveau contenu si vous y accédez directement depuis localhost: 4000? – Dogbert
@Jits J'ai couvert cela dans mes étapes de reproduction. – Kevin