docs: Ajout de documentation autour de l'auto-reload et du livereload
This commit is contained in:
@ -14,16 +14,27 @@
|
||||
cargo run --bin app
|
||||
```
|
||||
|
||||
## L'auto-reload
|
||||
## Rechargement automatique (_auto-reload_)
|
||||
|
||||
Pour permettre au projet de s'auto-recharger lors du développement, nous avons besoin de 2 librairies :
|
||||
Pour le projet `app`, nous utilisons en plus de `cargo-watch` ses librairies :
|
||||
- [`systemfd`](https://github.com/mitsuhiko/systemfd) permet de redémarrer un serveur sans interrompre les connexions en cours, il transmet le descripteur de fichier du socket à une nouvelle instance du serveur (exemple: `cargo watch -x run` --> `systemfd --no-pid -s http::3000 -- cargo watch -x run`). Si le port est déjà pris il en prendra un autre.
|
||||
- [`listenfd`](https://github.com/mitsuhiko/listenfd) permet, côté _Rust_, de démarrer un serveur en utilisant des connexions déjà ouvertes.
|
||||
|
||||
La librairie `systemfd` ne fait pas partie des dépendances du projet, il faut donc l'installer avec la commande suivante :
|
||||
```bash
|
||||
cargo install cargo-watch systemfd
|
||||
cargo install systemfd
|
||||
```
|
||||
|
||||
Pour recompiler automatiquement le serveur lors de changement :
|
||||
Pour notre application voici la commande à lancer :
|
||||
|
||||
```bash
|
||||
systemfd --no-pid -s http::3000 -- cargo watch -x 'run --bin app'
|
||||
```
|
||||
|
||||
## Chargement à chaud (_livereload_)
|
||||
|
||||
Pour que notre navigateur rafraîchisse automatique notre page lorsque le serveur a été recompilé, nous utilisons la librairie [`tower-livereload`](https://github.com/leotaku/tower-livereload).
|
||||
|
||||
A chaque changement, que ça soit sur du code en _Rust_, _HTML_, _CSS_ ou _JS_ alors le navigateur va recharger entièrement la page.
|
||||
|
||||
En Rust, il n'existe pas encore d'outil de _Hot Reload_ complet et intégré comme on en trouve dans d'autres environnements de développement web, comme pour _Node.js_.
|
||||
|
Reference in New Issue
Block a user