Scripts — référence rapide
TimePick est un monorepo npm workspaces à trois packages (client, server, shared). Chaque workspace expose ses propres scripts npm run <script> ; la racine expose en plus des scripts d'orchestration qui enchaînent plusieurs workspaces.
Cette fiche recense uniquement les scripts utiles à l'exploitation d'une instance (installation, mise à jour, dépannage) et signale ceux réservés au développement. Pour la liste exhaustive et à jour, consultez directement les fichiers package.json :
package.json(racine)server/package.jsonclient/package.json- section « Scripts » du
README.mddu repo
Dans quel contexte les utiliser
Cette fiche est une référence par workspace ; pour le déroulé pas-à-pas complet, voir les fiches d'installation et d'exploitation correspondantes :
| Contexte | Scripts concernés | Fiche |
|---|---|---|
| Installation locale hors Docker | init-db, migrate, build | Installation locale |
| Installation en production (Docker) | prepare-db (automatique, aucune commande manuelle) | Installation en production (Docker) |
| Configuration initiale (premier admin) | create-admin (alternative CLI à l'assistant web) | Configuration initiale |
| Mise à jour de version | migrate (ou prepare-db en Docker) | Mise à jour |
| Données de démonstration (local uniquement) | seed, seed:500-slots | Installation locale |
Racine (npm run <script>)
À exécuter depuis la racine du projet.
| Script | Ce qu'il fait | Quand l'utiliser |
|---|---|---|
dev | Démarre en parallèle les 3 processus de développement (build watch du package partagé + Vite + serveur Express) | Développeur, en local uniquement |
build | Build de production complet, dans l'ordre shared → client → server | Opérateur, pour une installation en production hors Docker — inutile avec l'image Docker, qui embarque son propre build |
test | Lance la suite de tests client (Vitest) puis serveur (Jest) | Développeur / intégration continue |
test:e2e | Lance la suite de tests Playwright de bout en bout | Développeur / intégration continue |
changelog | Régénère docs/CHANGELOG.md à partir de l'historique Git | Mainteneur du code, avant chaque publication de version |
generate:ds | Régénère docs/DESIGN_SYSTEM.md à partir des fichiers .meta.ts des composants UI | Développeur uniquement |
knip | Détecte les exports, fichiers et dépendances inutilisés | Développeur, contrôle qualité |
cleanup | Termine les processus vitest résiduels sans toucher aux serveurs de développement en cours | Développeur, en cas de blocage local des tests |
Variantes non listées ici
dev:client, dev:server, dev:shared, build:client, build:server, build:shared, test:client, test:server, test:e2e:ui, test:e2e:report et verify:mjml-strict (racine) existent aussi et ciblent un seul workspace ou une seule étape ; voir package.json. Aucun n'est nécessaire à l'exploitation courante d'une instance.
Serveur (cd server && npm run <script>)
| Script | Ce qu'il fait | Quand l'utiliser |
|---|---|---|
init-db | Crée la base de données et l'extension PostgreSQL uuid-ossp | Opérateur, une seule fois à l'installation locale hors Docker |
migrate | Applique les migrations SQL non encore exécutées (instantané juillet 2026 : 38 migrations numérotées 001 à 038, suivi via la table schema_migrations) — le nombre évolue à chaque version, voir server/src/migrations/ pour la liste à jour | Opérateur, à l'installation initiale et à chaque mise à jour de version |
prepare-db | Bootstrap idempotent : applique le schéma de base + les migrations en attente + le provisionnement SMTP initial en une seule commande (regroupe init-db + migrate) | Opérateur — utilisé automatiquement au démarrage du conteneur en installation Docker, sans action manuelle requise |
create-admin | Script interactif : crée un nouvel administrateur ou promeut un utilisateur existant | Opérateur, en alternative à l'assistant de configuration initiale si l'accès à l'interface web est indisponible |
seed | Purge intégralement la table users puis la repeuple avec un jeu de comptes fictifs (instantané juillet 2026 : 43 comptes, dont 3 administrateurs et 40 membres) | Développeur uniquement, en local — voir avertissement ci-dessous |
seed:500-slots | Génère 500 créneaux de test pour évaluer les performances | Développeur uniquement, tests de charge locaux |
verify:mjml-strict | Vérifie que tous les templates d'email respectent les contraintes strictes de compatibilité MJML (webmails) | Développeur, contrôle qualité avant modification des templates système |
Autres scripts du workspace (dev, build, start, test, test:watch, test:coverage) ne servent qu'au développement ou sont invoqués indirectement par les scripts racine et par le Dockerfile — voir server/package.json.
npm run seed est irréversible et interdit en production
Cette commande supprime toutes les lignes de la table users (hors un email d'administrateur conservé) avant de la re-remplir avec des données fictives ; les tables liées (événements, réservations, invitations, codes de secours…) sont vidées en cascade pour ces comptes supprimés. Le script refuse de s'exécuter si NODE_ENV=production, et laisse un délai d'annulation de 3 secondes (Ctrl+C) quand il est lancé depuis un terminal interactif. Ne l'exécutez jamais sur une base contenant des données réelles.
Client (cd client && npm run <script>)
Tous ces scripts s'exécutent dans le workspace client isolément et ne servent qu'au développement : le build de production du frontend passe normalement par npm run build à la racine (qui enchaîne shared → client → server), et n'a pas besoin d'être lancé séparément par un opérateur.
| Script | Ce qu'il fait | Quand l'utiliser |
|---|---|---|
dev | Serveur de développement Vite avec rechargement à chaud | Développeur uniquement |
build | Build de production Vite (équivalent à npm run build:client depuis la racine) | Développeur, pour tester un build isolément |
preview | Sert localement le résultat du dernier build de production, pour vérification avant déploiement | Développeur uniquement |
lint | Analyse ESLint du code source | Développeur, contrôle qualité |
test | Tests Vitest du frontend | Développeur / intégration continue |
test:watch | Tests Vitest en mode watch | Développeur uniquement |
test:coverage | Rapport de couverture de code Vitest | Développeur uniquement |
test:e2e | Alias vers les tests Playwright de bout en bout | Développeur / intégration continue |
test:e2e:ui | Tests Playwright en mode interface graphique | Développeur uniquement |
Pour un opérateur : ce qui compte vraiment
En usage courant (installation, mise à jour, dépannage), un opérateur n'a besoin que de :
init-db+migrate(installation locale hors Docker) — ouprepare-db, exécuté automatiquement par l'image Docker ;create-admin, en secours si l'assistant de configuration initiale n'est pas accessible ;build, uniquement pour une installation hors Docker.
Tous les autres scripts listés ci-dessus (dev*, test*, lint, changelog, generate:ds, knip, cleanup, verify:mjml-strict, seed*, preview) relèvent du développement du code et n'ont pas leur place sur une instance de production.
seed et seed:500-slots sont les seuls scripts destructifs
Aucun autre script listé sur cette fiche ne supprime de données. seed purge et repeuple la table users (voir avertissement ci-dessus) ; seed:500-slots ajoute des créneaux de test sans purger — à ne pas exécuter non plus sur une base de production, faute de mécanisme de nettoyage dédié.