husky-ci-setup
v1.0.6
Published
> ⚠️ **Note pour les utilisateurs** : Ce CLI ne prend en charge que les projets Next.js pour l'instant. Les presets React et Vanilla seront ajoutés plus tard.
Readme
husky-and-his-friends-ci-tools
⚠️ Note pour les utilisateurs : Ce CLI ne prend en charge que les projets Next.js pour l'instant. Les presets React et Vanilla seront ajoutés plus tard.
Ce projet propose un outil CLI pour automatiser la configuration de Husky, lint-staged, Prettier, git-precommit-checks et ESLint (optionnel) dans un projet Next.js. L'orchestration se fait via le fichier principal bin/init.js.
Installation et utilisation
Pour exécuter le CLI dans votre projet Next.js :
npx husky-ci-setupLe CLI détecte automatiquement la version de Next.js installée et adapte les dépendances ESLint en conséquence.
Compatibilité des versions ESLint
| Next.js version | ESLint | TypeScript-ESLint | eslint-config-prettier | | --------------- | ------ | ----------------- | ---------------------- | | 13 / 14 | ^8 | ^6 | ^8 | | 15 | ^9 | ^8 | ^9 |
Le CLI détecte automatiquement votre version de Next.js (ou eslint-config-next) et installe les versions compatibles des dépendances ESLint.
Structure des fichiers
bin/init.js :
- Point d'entrée du CLI. Orchestration des prompts, agrégation des dépendances, installation, et génération des fichiers de configuration.
- Utilise tous les modules de la partie
lib/pour chaque étape.
lib/depsPrompt.js :
- Affiche le prompt pour sélectionner les outils à installer (husky, lint-staged, prettier, eslint, git-precommit-checks).
- Retourne la liste des modules et fichiers de config associés.
lib/depsByPreset.js :
- Définit les dépendances recommandées par preset et par outil.
- Fonction utilitaire pour agréger dynamiquement les modules à installer selon le preset et la sélection utilisateur.
lib/checkAndInstallDeps.js :
- Vérifie les dépendances manquantes et propose leur installation automatique.
- N'installe que les modules nécessaires selon la sélection.
lib/copyTemplates.js :
- Copie les fichiers de configuration (ex : .prettierrc, lint-staged.config.js) sans écraser l'existant.
lib/huskySetup.js :
- Gère la configuration spécifique à Husky (hooks, etc.).
lib/nextjsDeps.js :
- Propose l'installation des plugins ESLint/Prettier recommandés pour Next.js si l'utilisateur sélectionne ESLint.
lib/packageJson.js :
- Utilitaire pour lire le package.json du projet cible.
lib/prompts.js :
- Prompt pour choisir le preset (Next.js, React, Vanilla).
Orchestration dans bin/init.js
- Affiche le prompt pour choisir le preset (Next.js uniquement pour l'instant).
- Affiche le prompt pour sélectionner les outils à installer.
- Agrège dynamiquement les dépendances à installer selon le preset et la sélection.
- Vérifie et installe les dépendances manquantes.
- Copie les fichiers de configuration associés, sans écraser l'existant.
- Génère le hook Husky pre-commit selon la sélection.
- Affiche un message de succès.
Pour toute contribution ou extension à d'autres presets, voir la logique dans lib/depsByPreset.js et bin/init.js.
