@configjs/cli 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.fr.md +454 -0
- package/README.md +313 -289
- package/dist/{chunk-QDVUNUTK.js → chunk-ZSDLWQSS.js} +1 -0
- package/dist/cli.js +4 -4
- package/dist/{install-UTFQ545S.js → install-7LTMBLVZ.js} +173 -3
- package/dist/{installed-G2RXXXZ6.js → installed-Y76PWTXI.js} +1 -1
- package/dist/{remove-QDF5BA6U.js → remove-7HJKNAEX.js} +1 -1
- package/package.json +1 -1
package/README.fr.md
ADDED
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
# ConfigJS
|
|
2
|
+
|
|
3
|
+
**Le CLI intelligent qui configure votre stack frontend complète en moins de 2 minutes**
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@configjs/cli)
|
|
6
|
+
[](https://www.npmjs.com/package/@configjs/cli)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
[](https://nodejs.org)
|
|
9
|
+
[](https://bundlephobia.com/package/@configjs/cli)
|
|
10
|
+
[](https://makeapullrequest.com)
|
|
11
|
+
[](https://github.com/sponsors/julien-lin)
|
|
12
|
+
|
|
13
|
+
**[Démarrage Rapide](#-démarrage-rapide) • [Fonctionnalités](#-fonctionnalités-clés) • [Documentation](#-documentation) • [Plugins](#-bibliothèques-supportées-40-plugins) • [Contribuer](#-contribuer)**
|
|
14
|
+
|
|
15
|
+
> **[🇬🇧 English version](./README.md)**
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 💡 Pourquoi ConfigJS ?
|
|
20
|
+
|
|
21
|
+
Configurer un projet React moderne prend généralement **2 à 4 heures** :
|
|
22
|
+
- Installer les bibliothèques une par une
|
|
23
|
+
- Lire la documentation de chaque outil
|
|
24
|
+
- Écrire la configuration boilerplate
|
|
25
|
+
- Résoudre les conflits de versions
|
|
26
|
+
- Créer la structure de code initiale
|
|
27
|
+
|
|
28
|
+
**ConfigJS réduit cela à moins de 2 minutes** sans effort.
|
|
29
|
+
|
|
30
|
+
### Le Problème
|
|
31
|
+
```bash
|
|
32
|
+
npm install react-router-dom axios zustand tailwindcss ...
|
|
33
|
+
# Puis passer des heures à configurer chaque bibliothèque manuellement
|
|
34
|
+
# Se battre avec les erreurs TypeScript
|
|
35
|
+
# Débugger les conflits de versions
|
|
36
|
+
# Écrire du boilerplate répétitif
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### La Solution ConfigJS
|
|
40
|
+
```bash
|
|
41
|
+
npx @configjs/cli react
|
|
42
|
+
# Assistant interactif vous guide
|
|
43
|
+
# Tout installé ET configuré
|
|
44
|
+
# Zéro conflit garanti
|
|
45
|
+
# Code prêt pour la production généré
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 🚀 Démarrage Rapide
|
|
49
|
+
|
|
50
|
+
**Aucune installation requise !** Utilisez directement avec `npx` :
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
cd votre-projet-react
|
|
54
|
+
npx @configjs/cli react
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
C'est tout ! ConfigJS va :
|
|
58
|
+
1. 🔍 **Détecter** votre environnement (version React, TypeScript, bundler)
|
|
59
|
+
2. 🎯 **Vous guider** dans la sélection des bibliothèques par catégorie
|
|
60
|
+
3. 📦 **Installer** tous les packages séquentiellement (aucun conflit)
|
|
61
|
+
4. ⚙️ **Configurer** tout avec du code fonctionnel
|
|
62
|
+
5. ✅ **Valider** la compatibilité et les dépendances
|
|
63
|
+
6. 🎉 **Terminé !** Votre projet est prêt pour la production
|
|
64
|
+
|
|
65
|
+
### Exemple de Session
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
$ npx @configjs/cli react
|
|
69
|
+
|
|
70
|
+
✔ Choisissez votre langue › Français
|
|
71
|
+
|
|
72
|
+
🔍 Détection du contexte...
|
|
73
|
+
✓ Framework: React 19.2.0
|
|
74
|
+
✓ TypeScript: Oui
|
|
75
|
+
✓ Bundler: Vite 7.2.4
|
|
76
|
+
✓ Gestionnaire de paquets: npm
|
|
77
|
+
|
|
78
|
+
✔ CSS / Styling › TailwindCSS
|
|
79
|
+
✔ Routing › React Router
|
|
80
|
+
✔ Gestion d'état › Zustand
|
|
81
|
+
✔ Client HTTP › Axios
|
|
82
|
+
✔ Composants UI › Shadcn/ui
|
|
83
|
+
✔ Formulaires › React Hook Form + Zod
|
|
84
|
+
✔ Outillage › ESLint, Prettier, Husky
|
|
85
|
+
|
|
86
|
+
✓ 7 bibliothèques sélectionnées
|
|
87
|
+
|
|
88
|
+
✨ Installation terminée en 1.8s
|
|
89
|
+
|
|
90
|
+
📦 Packages installés:
|
|
91
|
+
✓ TailwindCSS (^4.1.18)
|
|
92
|
+
✓ React Router (^7.11.0)
|
|
93
|
+
✓ Zustand (^5.0.9)
|
|
94
|
+
✓ Axios (^1.13.2)
|
|
95
|
+
...
|
|
96
|
+
|
|
97
|
+
📝 Fichiers créés:
|
|
98
|
+
• src/router.tsx
|
|
99
|
+
• src/store/index.ts
|
|
100
|
+
• src/lib/api.ts
|
|
101
|
+
• components.json
|
|
102
|
+
...
|
|
103
|
+
|
|
104
|
+
🚀 Prochaines étapes:
|
|
105
|
+
1. npm run dev
|
|
106
|
+
2. Visitez http://localhost:5173
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## ✨ Fonctionnalités Clés
|
|
112
|
+
|
|
113
|
+
### 🎯 Détection Intelligente
|
|
114
|
+
|
|
115
|
+
ConfigJS détecte automatiquement la configuration de votre projet :
|
|
116
|
+
- ✅ **Framework & Version** (React 18/19)
|
|
117
|
+
- ✅ **Langage** (JavaScript/TypeScript)
|
|
118
|
+
- ✅ **Bundler** (Vite, Webpack, Create React App)
|
|
119
|
+
- ✅ **Gestionnaire de Paquets** (npm, yarn, pnpm, bun)
|
|
120
|
+
- ✅ **Bibliothèques Déjà Installées** (ignore les doublons)
|
|
121
|
+
- ✅ **Structure du Projet** (adapte la configuration)
|
|
122
|
+
|
|
123
|
+
### ⚙️ Configuration Complète (Pas Seulement l'Installation !)
|
|
124
|
+
|
|
125
|
+
Contrairement aux simples installateurs, ConfigJS **configure réellement** vos bibliothèques avec du code fonctionnel :
|
|
126
|
+
|
|
127
|
+
**Exemple React Router :**
|
|
128
|
+
```typescript
|
|
129
|
+
✓ Installation de react-router-dom
|
|
130
|
+
✓ Création de src/router.tsx avec les routes
|
|
131
|
+
✓ Création de src/routes/Home.tsx
|
|
132
|
+
✓ Création de src/routes/About.tsx
|
|
133
|
+
✓ Intégration de RouterProvider dans App.tsx
|
|
134
|
+
✓ Types TypeScript configurés
|
|
135
|
+
→ Prêt à utiliser immédiatement !
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Exemple TailwindCSS :**
|
|
139
|
+
```typescript
|
|
140
|
+
✓ Installation de tailwindcss + @tailwindcss/vite
|
|
141
|
+
✓ Mise à jour de vite.config.ts avec le plugin
|
|
142
|
+
✓ Injection des directives dans src/index.css
|
|
143
|
+
✓ Mode JIT activé
|
|
144
|
+
→ Commencez à utiliser les classes Tailwind maintenant !
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Exemple Redux Toolkit :**
|
|
148
|
+
```typescript
|
|
149
|
+
✓ Installation de @reduxjs/toolkit + react-redux
|
|
150
|
+
✓ Création de src/store/index.ts avec configureStore
|
|
151
|
+
✓ Création de src/store/slices/counterSlice.ts
|
|
152
|
+
✓ Création de src/store/hooks.ts (hooks typés)
|
|
153
|
+
✓ Enveloppe App dans <Provider>
|
|
154
|
+
→ Configuration Redux complète en quelques secondes !
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 🛡️ Validation Intelligente de Compatibilité
|
|
158
|
+
|
|
159
|
+
ConfigJS prévient les conflits avant qu'ils ne se produisent :
|
|
160
|
+
|
|
161
|
+
- ❌ **Conflits Exclusifs** : Impossible d'installer Redux + Zustand (un seul gestionnaire d'état)
|
|
162
|
+
- ❌ **Routing Exclusif** : React Router OU TanStack Router (pas les deux)
|
|
163
|
+
- ⚠️ **Avertissements** : TailwindCSS + Bootstrap (philosophies différentes)
|
|
164
|
+
- ✅ **Dépendances Automatiques** : TailwindCSS nécessite PostCSS → installé automatiquement
|
|
165
|
+
- ✅ **Suivi des Plugins** : Mémorise les plugins installés (`.configjsrc`)
|
|
166
|
+
|
|
167
|
+
### 📦 Bibliothèques Supportées (40+ Plugins)
|
|
168
|
+
|
|
169
|
+
#### 🎨 CSS / Styling
|
|
170
|
+
- TailwindCSS v4 (avec @tailwindcss/vite)
|
|
171
|
+
- Styled Components
|
|
172
|
+
- React Bootstrap
|
|
173
|
+
- Emotion
|
|
174
|
+
- CSS Modules
|
|
175
|
+
|
|
176
|
+
#### 🧭 Routing
|
|
177
|
+
- React Router v7
|
|
178
|
+
- TanStack Router
|
|
179
|
+
|
|
180
|
+
#### 🗂️ Gestion d'État
|
|
181
|
+
- Redux Toolkit
|
|
182
|
+
- Zustand
|
|
183
|
+
- Jotai
|
|
184
|
+
- MobX
|
|
185
|
+
|
|
186
|
+
#### 🌐 Client HTTP
|
|
187
|
+
- Axios
|
|
188
|
+
- TanStack Query (React Query)
|
|
189
|
+
- Fetch Wrapper
|
|
190
|
+
|
|
191
|
+
#### 📝 Formulaires
|
|
192
|
+
- React Hook Form
|
|
193
|
+
- Formik
|
|
194
|
+
- Zod (validation)
|
|
195
|
+
- Yup (validation)
|
|
196
|
+
|
|
197
|
+
#### 🎨 Composants UI
|
|
198
|
+
- Shadcn/ui
|
|
199
|
+
- Radix UI
|
|
200
|
+
- React Icons
|
|
201
|
+
- Lucide Icons
|
|
202
|
+
- React Hot Toast
|
|
203
|
+
|
|
204
|
+
#### 🧪 Tests
|
|
205
|
+
- React Testing Library
|
|
206
|
+
- Vitest
|
|
207
|
+
- Jest
|
|
208
|
+
|
|
209
|
+
#### 🛠️ Outillage
|
|
210
|
+
- ESLint
|
|
211
|
+
- Prettier
|
|
212
|
+
- Husky (Git hooks)
|
|
213
|
+
- lint-staged
|
|
214
|
+
- date-fns
|
|
215
|
+
|
|
216
|
+
#### ✨ Animation
|
|
217
|
+
- Framer Motion
|
|
218
|
+
- React Spring
|
|
219
|
+
|
|
220
|
+
#### 🔧 Utilitaires
|
|
221
|
+
- Lodash
|
|
222
|
+
- clsx / classnames
|
|
223
|
+
|
|
224
|
+
### 🔄 Rollback Automatique
|
|
225
|
+
|
|
226
|
+
Si quelque chose se passe mal, ConfigJS restaure automatiquement tout :
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
❌ Erreur détectée durant la configuration
|
|
230
|
+
↺ Rollback en cours...
|
|
231
|
+
✓ package.json restauré
|
|
232
|
+
✓ Tous les fichiers modifiés restaurés
|
|
233
|
+
✓ Fichiers créés supprimés
|
|
234
|
+
✅ Projet restauré à l'état précédent
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### 🎯 Système de Suivi des Plugins
|
|
238
|
+
|
|
239
|
+
Ne réinstallez jamais la même bibliothèque deux fois :
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# Première exécution
|
|
243
|
+
$ npx @configjs/cli react
|
|
244
|
+
✔ TailwindCSS › Sélectionné
|
|
245
|
+
|
|
246
|
+
# Deuxième exécution (même projet)
|
|
247
|
+
$ npx @configjs/cli react
|
|
248
|
+
ℹ TailwindCSS est déjà installé, ignoré...
|
|
249
|
+
|
|
250
|
+
# Vérifier les plugins installés
|
|
251
|
+
$ npx @configjs/cli installed
|
|
252
|
+
📦 Plugins installés:
|
|
253
|
+
✓ TailwindCSS (^4.1.18) - installé il y a 2 heures
|
|
254
|
+
✓ React Router (^7.11.0) - installé il y a 2 heures
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
ConfigJS crée un fichier `.configjsrc` pour suivre les installations et prévenir les conflits.
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 📖 Documentation
|
|
262
|
+
|
|
263
|
+
### Commandes
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
# Installation interactive
|
|
267
|
+
npx @configjs/cli react
|
|
268
|
+
|
|
269
|
+
# Lister les plugins disponibles
|
|
270
|
+
npx @configjs/cli list
|
|
271
|
+
npx @configjs/cli list --category routing
|
|
272
|
+
|
|
273
|
+
# Vérifier les plugins installés
|
|
274
|
+
npx @configjs/cli installed
|
|
275
|
+
|
|
276
|
+
# Retirer un plugin du suivi
|
|
277
|
+
npx @configjs/cli remove <nom-du-plugin>
|
|
278
|
+
|
|
279
|
+
# Valider la compatibilité du projet
|
|
280
|
+
npx @configjs/cli check
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Options CLI
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
npx @configjs/cli react [options]
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
| Option | Description |
|
|
290
|
+
|--------|-------------|
|
|
291
|
+
| `--yes`, `-y` | Ignorer les prompts, utiliser les valeurs par défaut |
|
|
292
|
+
| `--dry-run`, `-d` | Simuler sans écrire de fichiers |
|
|
293
|
+
| `--silent`, `-s` | Aucune sortie (mode CI/CD) |
|
|
294
|
+
| `--no-install` | Générer seulement les configs, ignorer npm install |
|
|
295
|
+
| `--debug` | Logs verbeux |
|
|
296
|
+
|
|
297
|
+
### Exemples d'Utilisation
|
|
298
|
+
|
|
299
|
+
**Configuration rapide avec les valeurs par défaut :**
|
|
300
|
+
```bash
|
|
301
|
+
npx @configjs/cli react --yes
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**Mode CI/CD :**
|
|
305
|
+
```bash
|
|
306
|
+
npx @configjs/cli react --silent --yes
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**Prévisualiser les changements uniquement :**
|
|
310
|
+
```bash
|
|
311
|
+
npx @configjs/cli react --dry-run
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Générer les configs sans installer les packages :**
|
|
315
|
+
```bash
|
|
316
|
+
npx @configjs/cli react --no-install
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## 🏗️ Architecture
|
|
322
|
+
|
|
323
|
+
ConfigJS utilise une architecture modulaire de plugins où chaque bibliothèque est un plugin autonome :
|
|
324
|
+
|
|
325
|
+
```typescript
|
|
326
|
+
interface Plugin {
|
|
327
|
+
name: string
|
|
328
|
+
category: Category
|
|
329
|
+
frameworks: Framework[]
|
|
330
|
+
|
|
331
|
+
// Compatibilité
|
|
332
|
+
compatibleWith?: string[]
|
|
333
|
+
incompatibleWith?: string[]
|
|
334
|
+
requires?: string[]
|
|
335
|
+
|
|
336
|
+
// Cycle de vie
|
|
337
|
+
detect?: (ctx: ProjectContext) => boolean | Promise<boolean>
|
|
338
|
+
install: (ctx: ProjectContext) => Promise<void>
|
|
339
|
+
configure: (ctx: ProjectContext) => Promise<void>
|
|
340
|
+
rollback?: (ctx: ProjectContext) => Promise<void>
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Extensibilité
|
|
345
|
+
|
|
346
|
+
Créez vos propres plugins :
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
npm install @configjs/plugin-react-query
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
ConfigJS détectera et chargera automatiquement les plugins préfixés par `@configjs/plugin-*`.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 🤝 Contribuer
|
|
357
|
+
|
|
358
|
+
Les contributions sont les bienvenues ! Consultez [CONTRIBUTING.md](./docs/CONTRIBUTING.md) pour les directives.
|
|
359
|
+
|
|
360
|
+
### Développer un Plugin
|
|
361
|
+
|
|
362
|
+
Voir [PLUGIN_DEVELOPMENT.md](./docs/PLUGIN_DEVELOPMENT.md) pour créer vos propres plugins.
|
|
363
|
+
|
|
364
|
+
### Configuration de Développement
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
# Cloner
|
|
368
|
+
git clone https://github.com/julien-lin/orchestrateur-framework.git
|
|
369
|
+
cd orchestrateur-framework
|
|
370
|
+
|
|
371
|
+
# Installer les dépendances
|
|
372
|
+
npm install
|
|
373
|
+
|
|
374
|
+
# Lancer les tests
|
|
375
|
+
npm run test
|
|
376
|
+
npm run test:watch
|
|
377
|
+
|
|
378
|
+
# Vérification des types
|
|
379
|
+
npm run typecheck
|
|
380
|
+
|
|
381
|
+
# Lint
|
|
382
|
+
npm run lint
|
|
383
|
+
|
|
384
|
+
# Build
|
|
385
|
+
npm run build
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 📋 Prérequis
|
|
391
|
+
|
|
392
|
+
- **Node.js** ≥ 18.0.0
|
|
393
|
+
- **npm** / **yarn** / **pnpm** / **bun**
|
|
394
|
+
- Un projet React existant (Vite, CRA, ou configuration personnalisée)
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## 🗺️ Roadmap
|
|
399
|
+
|
|
400
|
+
### v1.1 ✅ (Actuelle)
|
|
401
|
+
- [x] Système de suivi des plugins (.configjsrc)
|
|
402
|
+
- [x] Détection des plugins (package.json + tracker)
|
|
403
|
+
- [x] UX console améliorée avec couleurs
|
|
404
|
+
- [x] Installation séquentielle (prévient la corruption)
|
|
405
|
+
- [x] 40+ plugins à travers 10 catégories
|
|
406
|
+
|
|
407
|
+
### v1.2 (T2 2025)
|
|
408
|
+
- [ ] Presets de configuration (templates de démarrage)
|
|
409
|
+
- [ ] Marketplace de plugins
|
|
410
|
+
- [ ] Commande de mise à jour interactive
|
|
411
|
+
- [ ] Assistant de résolution de conflits
|
|
412
|
+
|
|
413
|
+
### v2.0 (T3 2025)
|
|
414
|
+
- [ ] Support Next.js
|
|
415
|
+
- [ ] Support Remix
|
|
416
|
+
- [ ] Support Astro
|
|
417
|
+
- [ ] Interface web pour la configuration
|
|
418
|
+
|
|
419
|
+
### v2.x (Futur)
|
|
420
|
+
- [ ] Support Vue 3
|
|
421
|
+
- [ ] Support Svelte
|
|
422
|
+
- [ ] Support React Native
|
|
423
|
+
- [ ] Templates de plugins personnalisés
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## 💖 Soutenir ce Projet
|
|
428
|
+
|
|
429
|
+
Si ConfigJS vous fait gagner du temps et vous facilite la vie, envisagez de sponsoriser le projet :
|
|
430
|
+
|
|
431
|
+
**[❤️ Sponsoriser sur GitHub](https://github.com/sponsors/julien-lin)**
|
|
432
|
+
|
|
433
|
+
Votre soutien aide à maintenir et améliorer ConfigJS pour toute la communauté !
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## 📄 Licence
|
|
438
|
+
|
|
439
|
+
[MIT](./LICENSE) © [Julien Lin](https://github.com/julien-lin)
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## 🙏 Remerciements
|
|
444
|
+
|
|
445
|
+
Inspiré par les meilleures pratiques de :
|
|
446
|
+
- [Vite](https://vitejs.dev) - Outil de build ultra-rapide
|
|
447
|
+
- [Create T3 App](https://create.t3.gg) - Toolkit full-stack type-safe
|
|
448
|
+
- [Projen](https://projen.io) - Configuration de projet en tant que code
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
**Fait avec ❤️ pour la communauté frontend**
|
|
453
|
+
|
|
454
|
+
[Changelog](./CHANGELOG.md) • [Issues](https://github.com/julien-lin/orchestrateur-framework/issues) • [Contributing](./docs/CONTRIBUTING.md)
|