@fazycks/nextjs-template-cli
v1.0.1
Published
CLI pour cloner des dépôts NextJS avec système d'authentification et ajout de composants
Maintainers
Readme
NextJS CLI
Un CLI TypeScript inspiré de ShadCN UI pour cloner des dépôts GitHub NextJS avec système d'authentification et ajout de composants.
🚀 Fonctionnalités
- 🚀 Création de projets - Clonage de dépôts NextJS publics et privés
- � Système de composants - Ajout de composants comme ShadCN UI avec
nextjs-cli add - 🔐 Authentification - Système d'auth avec base de données fictive
- 👥 Gestion des utilisateurs - Permissions et tokens GitHub
- 🎨 Interface colorée - CLI avec indicateurs de progression
- ✅ Validation robuste - Noms de projets, URLs et configurations
- 🛠️ Installation automatique - Dépendances npm automatiques
📋 Prérequis
- Node.js (version 16 ou supérieure)
- Git installé sur le système
- npm, yarn ou pnpm
🛠️ Installation
Installation globale (recommandée)
# Via npm
npm install -g nextjs-cli
# Via pnpm
pnpm add -g nextjs-cli
# Via yarn
yarn global add nextjs-cliInstallation locale pour développement
git clone <url-du-projet>
cd NextJs-CLI
npm install
npm run build
npm link🎯 Utilisation
Créer un nouveau projet
# Méthode 1: Avec le nom du projet
nextjs-cli create mon-projet
# Méthode 2: Sélection interactive
nextjs-cli create
# Forcer un gestionnaire de paquets spécifique
nextjs-cli create mon-projet --pm pnpm
nextjs-cli create mon-projet --package-manager yarn
# Via pnpm dlx (sans installation)
pnpm dlx nextjs-cli@latest create mon-projetAjouter des composants (comme ShadCN UI)
# Dans un projet NextJS existant
cd mon-projet-nextjs
# Ajout avec sélection interactive
nextjs-cli add
# Ajout direct par nom
nextjs-cli add ui-components
nextjs-cli add nextjs-clean
nextjs-cli add auth-system
# Forcer un gestionnaire de paquets spécifique
nextjs-cli add ui-components --pm pnpm
nextjs-cli add auth-system --package-manager yarn
# Ne pas installer les dépendances automatiquement
nextjs-cli add ui-components --no-install
# Via pnpm dlx (comme ShadCN)
pnpm dlx nextjs-cli@latest add ui-components
pnpm dlx nextjs-cli@latest addLister les composants disponibles
# Tous les composants
nextjs-cli list-components
# Par catégorie
nextjs-cli list-components --category ui
nextjs-cli list-components -c auth
# Alias court
nextjs-cli list-compAutres commandes utiles
# Lister les utilisateurs de test
nextjs-cli list-users
# Lister les templates de projets
nextjs-cli list-repos
# Lister les gestionnaires de paquets disponibles
nextjs-cli list-package-managers
nextjs-cli list-pm
# Valider la configuration
nextjs-cli validate
# Aide
nextjs-cli --help
nextjs-cli add --help
nextjs-cli create --help📦 Composants disponibles
🛠️ Setup & Configuration
nextjs-clean- Configuration NextJS propre avec TypeScript et Tailwind CSSdatabase-setup🔒 - Configuration Prisma + PostgreSQL
🎨 Interface Utilisateur
ui-components- Pack de composants UI réutilisables (Button, Card, etc.)
� Authentification
auth-system🔒 - Système d'authentification NextAuth.js complet
🔒 = Nécessite une authentification
👥 Utilisateurs de test
| Nom d'utilisateur | Email | Accès privé | Description |
| --- | --- | --- | --- |
| admin | [email protected] | ✅ | Administrateur avec accès complet |
| user1 | [email protected] | ❌ | Utilisateur standard (composants publics uniquement) |
| developer | [email protected] | ✅ | Développeur avec accès aux composants privés |
🏗️ Architecture du projet
src/
├── types/
│ └── index.ts # Types TypeScript
├── services/
│ ├── auth.service.ts # Service d'authentification
│ ├── repository.service.ts # Gestion des templates de projets
│ ├── component.service.ts # Gestion des composants (nouveau)
│ ├── git.service.ts # Service de clonage Git
│ ├── config.service.ts # Service de configuration
│ ├── data.service.ts # Service de données
│ └── validation.service.ts # Service de validation
└── index.ts # Point d'entrée du CLI� Développement
# Installation des dépendances
npm install
# Mode développement
npm run dev
# Construction
npm run build
# Mode watch
npm run watch
# Test du CLI en développement
npx ts-node src/index.ts --help
npx ts-node src/index.ts add ui-components🧪 Tests
# Sur Windows
test-cli.bat
test-components.bat
# Sur Linux/Mac
./test-cli.sh
./test-components.sh⚙️ Configuration
Variables d'environnement
cp .env.example .envFichier config.json
Le CLI utilise config.json pour la configuration des utilisateurs, dépôts et composants.
🎨 Ajout de nouveaux composants
Structure d'un composant
{
"name": "mon-composant",
"displayName": "Mon Composant Génial",
"description": "Description du composant",
"category": "ui",
"isPrivate": false,
"requiresAuth": false,
"dependencies": ["package1", "package2"],
"devDependencies": ["@types/package1"],
"files": [
{
"path": "components/MonComposant.tsx",
"type": "file",
"content": "// Code du composant..."
}
]
}Ajout au config.json
Ajoutez votre composant dans la section components du fichier config.json.
🚀 Publication sur NPM
Préparation
# Build
npm run build
# Vérification
npm pack --dry-run
# Publication
npm publishUtilisation après publication
# Installation globale
npm install -g nextjs-cli
# Utilisation directe (comme ShadCN)
npx nextjs-cli@latest add ui-components
pnpm dlx nextjs-cli@latest add auth-system🔒 Sécurité
⚠️ Important : Ce projet utilise une base de données fictive à des fins de démonstration.
En production :
- Utilisez une vraie base de données
- Chiffrez les tokens GitHub
- Implémentez une authentification OAuth
- Utilisez des variables d'environnement
- Validez toutes les entrées utilisateur
📖 Comparaison avec ShadCN UI
| Fonctionnalité | ShadCN UI | NextJS CLI |
| --- | --- | --- |
| Ajout de composants | npx shadcn@latest add button | npx nextjs-cli@latest add ui-components |
| Sélection interactive | npx shadcn@latest add | npx nextjs-cli@latest add |
| Liste des composants | npx shadcn@latest add --help | nextjs-cli list-components |
| Type de composants | UI uniquement | UI + Auth + Setup + Database |
| Authentification | Non | Oui (pour composants privés) |
�️ Fonctionnalités avancées
Clonage optimisé
- Clone shallow (--depth 1)
- Nettoyage automatique de l'historique Git
- Validation des URLs avant clonage
Gestion des dépendances
- Installation automatique des packages npm
- Séparation dependencies/devDependencies
- Confirmation utilisateur avant installation
Validation
- Noms de projets (2-50 caractères, format valide)
- URLs GitHub avec tokens d'authentification
- Structure de projet NextJS
📄 Licence
MIT - Voir le fichier LICENSE pour plus de détails.
🤝 Contribution
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commit les changements (
git commit -m 'Add AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
📞 Support
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: [email protected]
Inspiré par ShadCN UI - Créé avec ❤️ pour la communauté NextJS
📦 Gestionnaires de paquets supportés
Le CLI détecte et supporte automatiquement plusieurs gestionnaires de paquets :
| Gestionnaire | Installation | Commande d'installation | Détection |
| --- | --- | --- | --- |
| pnpm | npm install -g pnpm | pnpm add <package> | pnpm-lock.yaml |
| yarn | npm install -g yarn | yarn add <package> | yarn.lock |
| bun | Voir bun.sh | bun add <package> | bun.lockb |
| npm | Inclus avec Node.js | npm install <package> | package-lock.json |
Fonctionnalités intelligentes :
- 🔍 Détection automatique - Le CLI détecte le gestionnaire utilisé dans votre projet
- 📋 Sélection interactive - Choix du gestionnaire si plusieurs sont disponibles
- ⚙️ Configuration automatique - Mise à jour du
package.jsonavec le champpackageManager - 🚀 Installation optimisée - Utilise les commandes spécifiques à chaque gestionnaire
