Structuration du repository Epicraft
Comment est structuré le repo Epicraft?
├── client/ <-- Interface client JS
├── server/ <-- Serveur de synchronisation NodeJS
├── packages/ <-- Packages supplémentaires qui peuvent être utilisés par le client et le serveur
└── package.json <-- pour ESLINT
Client
Interface client JS
├── public/ <-- assets HTML/IMG pour webpack
├── src/ <-- code source
└── package.json
Attention à ne pas confondre action pour Redux et action Epicraft (générés pour modifier les formulaires).
Sources
Redux
├── enum/action.js <-- Identifiants pour les actions Redux
├── actions/ <-- Création des actions Redux
├── reducers/
└── stores/ <-- Initialisation et singleton du store
React
├── components/
├── router/ <-- configuration de react-router
├── views/ <-- pages pour le routeur
└── app.js <-- point d'entrée
Autres
├── database/ <-- gestion du stockage local de l'application (WebSQL)
└── helpers/
├── actionFactory/ <-- Création des actions Epicraft
└── projectComponent/ <-- Définition de chaque composants/propriétés des pages d'un projet
Server
Serveur de synchronisation NodeJS
├── config/ <-- configuration du serveur (équivalent d'application.ini Voo4)
├── src/ <-- code source
└── package.json
Packages
Packages supplémentaires qui peuvent être utilisés par le client et le serveur
├── id-generator/ <-- génération d'identifiants aléatoires
├── project-manager/ <-- interpretion JS des actions pour modification structure.json
├── translation/ <-- gestionnaire de traduction
└── ...
Pourquoi des packages séparés?
- Partage de code entre le client, le serveur, les autres packages… - Structuration du code par le découpage en modules “indépendants”
- Partage de code entre le client, le serveur, les autres packages… - Structuration du code par le découpage en modules “indépendants”
Comment installer un poste de dev?
Epicraft se base sur les workspaces yarn pour une meilleure gestion des dépendances. L’installation se fait depuis la racine du repo:
yarn install