Skip to content

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 :

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 :

ContexteScripts concernésFiche
Installation locale hors Dockerinit-db, migrate, buildInstallation 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 versionmigrate (ou prepare-db en Docker)Mise à jour
Données de démonstration (local uniquement)seed, seed:500-slotsInstallation locale

Racine (npm run <script>)

À exécuter depuis la racine du projet.

ScriptCe qu'il faitQuand l'utiliser
devDémarre en parallèle les 3 processus de développement (build watch du package partagé + Vite + serveur Express)Développeur, en local uniquement
buildBuild de production complet, dans l'ordre sharedclientserverOpérateur, pour une installation en production hors Docker — inutile avec l'image Docker, qui embarque son propre build
testLance la suite de tests client (Vitest) puis serveur (Jest)Développeur / intégration continue
test:e2eLance la suite de tests Playwright de bout en boutDéveloppeur / intégration continue
changelogRégénère docs/CHANGELOG.md à partir de l'historique GitMainteneur du code, avant chaque publication de version
generate:dsRégénère docs/DESIGN_SYSTEM.md à partir des fichiers .meta.ts des composants UIDéveloppeur uniquement
knipDétecte les exports, fichiers et dépendances inutilisésDéveloppeur, contrôle qualité
cleanupTermine les processus vitest résiduels sans toucher aux serveurs de développement en coursDé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>)

ScriptCe qu'il faitQuand l'utiliser
init-dbCrée la base de données et l'extension PostgreSQL uuid-osspOpérateur, une seule fois à l'installation locale hors Docker
migrateApplique 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 à jourOpérateur, à l'installation initiale et à chaque mise à jour de version
prepare-dbBootstrap 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-adminScript interactif : crée un nouvel administrateur ou promeut un utilisateur existantOpérateur, en alternative à l'assistant de configuration initiale si l'accès à l'interface web est indisponible
seedPurge 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-slotsGénère 500 créneaux de test pour évaluer les performancesDéveloppeur uniquement, tests de charge locaux
verify:mjml-strictVé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 sharedclientserver), et n'a pas besoin d'être lancé séparément par un opérateur.

ScriptCe qu'il faitQuand l'utiliser
devServeur de développement Vite avec rechargement à chaudDéveloppeur uniquement
buildBuild de production Vite (équivalent à npm run build:client depuis la racine)Développeur, pour tester un build isolément
previewSert localement le résultat du dernier build de production, pour vérification avant déploiementDéveloppeur uniquement
lintAnalyse ESLint du code sourceDéveloppeur, contrôle qualité
testTests Vitest du frontendDéveloppeur / intégration continue
test:watchTests Vitest en mode watchDéveloppeur uniquement
test:coverageRapport de couverture de code VitestDéveloppeur uniquement
test:e2eAlias vers les tests Playwright de bout en boutDéveloppeur / intégration continue
test:e2e:uiTests Playwright en mode interface graphiqueDé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) — ou prepare-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é.

Publié sous licence FSL-1.1-MIT.