This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
export default defineConfig([
# DnD-5th-Tools
Ce dépôt contient une application React + TypeScript construite avec Vite pour visualiser et manipuler des donjons (FOV, brouillard, overlay MJ, etc.).
Table des matières
- [Prérequis](#prérequis)
- [Installation & développement](#installation--développement)
- [Structure du projet](#structure-du-projet)
- [Scripts utiles](#scripts-utiles)
- [CI / Tests](#ci--tests)
- [Dépannage rapide](#dépannage-rapide)
- [Contribution](#contribution)
---
## Prérequis
- Node.js (>= 18 recommandé)
- npm ou yarn
## Installation & développement
1. Installer les dépendances :
```bash
npm install
# ou
# yarn- Démarrer le serveur de développement (HMR) :
npm run dev
# (par défaut Vite écoute sur http://localhost:5173)- Compiler pour la production :
npm run build- Prévisualiser la build :
npm run preview- Linter :
npm run lintLes principaux dossiers/fichiers :
-
src/— code source React + TypeScriptmain.tsx— point d'entrée de l'applicationApp.tsx— logique d'initialisation (chargement JSON, normalisation)components/— composants React principauxDungeonMap.tsx— rendu SVG du donjon, tokens, brouillard, overlay MJInfoPanel.tsx— panneau d'information latéral (salle/cellule)FogLayer.tsx/Cell.tsx— rendu du brouillard et des cellules
model/— types et helpers (Dungeon, CellState, Bits)state/— stores (Zustand) (ex.fogStore.tsgère la visibilité)utils/— utilitaires, notammentfov.ts(algorithme de visibilité)
-
public/— assets statiques (SVG, JSON) servis tels quels -
tools/verifyDungeon.mjs— script utilitaire pour valider / normaliser les JSON de donjons (1-based → 0-based, bounds checks)
Quelques décisions de conception :
- Le store
useFogStoregère l'état de visibilité des cellules et déclenchecomputeFOV. - Les types sont importés en
import typepour éviter l'émission d'importations runtime inutiles (problème résolu : suppression des placeholders runtime). - Le mode MJ (
isMJ) active un overlay vectoriel (salles, portes, marques, escaliers) pour vérifier la carte.
npm run dev— développementnpm run build— build productionnpm run preview— prévisualiser la buildnpm run lint— lint
Une action GitHub (.github/workflows/ci.yml) exécute npm ci, npm run build et npm run lint sur chaque push et PR vers main.
- Si le donjon ne s'affiche pas : vérifiez que le JSON est accessible (correct URL via
public/assetsounew URL(...)), et quewidth/heightsont présents ou inférés. - Si la FOV montre 0 cellules : vérifiez que les tokens ont des coordonnées numériques (pas
NaN) et quecomputeFOVest appelé. - Pour améliorer la visualisation MJ, activez
isMJpour afficher l'overlay vectoriel.
- Ouvrez une branche (ex.
chore/feature-my-change) et créez une PR versmain. - CI s'exécutera automatiquement et vérifiera la build.
Merci ! Si vous avez besoin d'une fonctionnalité additionnelle (tests automatisés, export de format, édition de donjon), dites-moi et je peux l'ajouter.