Si vous êtes un développeur Web et que vous n'avez pas utilisé l'extension du serveur en direct dans VScode, êtes-vous même un développeur? Je plaisante. Mais avez-vous réfléchi à la façon dont cela fonctionne sous le capot? Dans le blog d'aujourd'hui, essayons de comprendre comment cela fonctionne avec une implémentation pratique à l'aide de Golang. Pourquoi Golang? Eh bien, j'explore Golang ces jours-ci, et quoi de mieux à apprendre que de construire un projet? Donc, un contexte assez (pas celui de Golang) commençons.
Le serveur en direct recharge automatiquement le navigateur chaque fois qu'il détecte une modification dans les fichiers HTML, CSS ou JS. Il a commencé par servir ces fichiers statiques via un serveur HTTP. Sous le capot, il utilise un observateur de fichiers comme Fsnotify (nous allons l'utiliser pour notre projet), FSWATCH (dans le système de fichiers basé sur UNIX) ou Chokidar (pour NodeJS) pour surveiller en continu le répertoire du projet pour les modifications de fichiers (essentiellement lorsque vous enregistrez n'importe quel fichier avec des extensions .html, .css, .js).
Au cœur, il utilise une connexion WebSocket entre le serveur Your (Node JS) et le navigateur. Lorsque le serveur détecte un fichier modifie, il envoie une notification de rechargement via WebSocket au navigateur. Le navigateur, à son tour, recharge la page pour refléter les nouvelles modifications apportées. De plus, il utilise l'injection CSS (mise à jour uniquement des styles sans rechargement complet), HMR (remplacement du module chaud) pour le module JavaScript. Cela garantit que le développeur est un commentaire en temps réel sans avoir besoin de recharger manuellement le navigateur après chaque modification du code.Aperçu du projet
1. Servir des fichiers statiques
http.Handle("/", http.FileServer(http.Dir("./static")))2. Recharger le point de terminaison
3. Regarder les modifications du fichier
http.Handle("/", http.FileServer(http.Dir("./static")))5. Exécution du serveur
http.Handle("/", http.FileServer(http.Dir("./static")))Réflexions finales
Avec seulement quelques lignes de code Go, j'ai pu améliorer le flux de travail pour le développement Web statique, et j'ai hâte de raffiner cet outil encore plus.
Consultez le code: serv-it github
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3