📦 Laravel 12 - Cheat Sheet Composer & npm
🚀 Contexte
Laravel 12 • Jetstream • Livewire • Tailwind CSS
🎼 COMPOSER
Installation & Mise Ă jour de Composer
# Vérifier la version de Composer
composer --version
# Mettre Ă jour Composer lui-mĂŞme
composer self-update
# Revenir à une version précédente de Composer
composer self-update --rollback
# Mettre à jour vers une version spécifique
composer self-update 2.6.5Gestion des dépendances
# Installer toutes les dépendances (composer.lock)
composer install
# Installer sans les dépendances de dev
composer install --no-dev
# Mettre à jour toutes les dépendances
composer update
# Mettre à jour un package spécifique
composer update laravel/framework
# Mettre Ă jour plusieurs packages
composer update laravel/framework laravel/sanctum
# Mettre Ă jour avec contraintes du composer.json
composer update --with-dependenciesAjouter des packages
# Ajouter un package
composer require laravel/sanctum
# Ajouter un package de dev
composer require --dev laravel/pint
# Ajouter une version spécifique
composer require laravel/sanctum:^3.0
# Ajouter avec mise à jour des dépendances
composer require package/name --with-all-dependenciesSupprimer des packages
# Supprimer un package
composer remove package/name
# Supprimer un package de dev
composer remove --dev package/name
# Supprimer sans mettre à jour les dépendances
composer remove package/name --no-updateOptimisation
# Optimiser l'autoloader (production)
composer dump-autoload -o
# Optimiser avec autorité de classe
composer dump-autoload -a
# Régénérer l'autoloader
composer dump-autoloadVérification & Diagnostic
# Vérifier les problèmes de dépendances
composer diagnose
# Valider composer.json
composer validate
# Voir pourquoi un package est installé
composer why vendor/package
# Voir les packages obsolètes
composer outdated
# Voir uniquement les packages directs obsolètes
composer outdated --direct
# Afficher l'arbre des dépendances
composer show --tree
# Voir les infos d'un package
composer show laravel/frameworkCommandes utiles
# Mode verbeux pour debug
composer install -vvv
# Installer sans scripts
composer install --no-scripts
# Réinstaller tous les packages
composer install --prefer-install=dist --no-dev --optimize-autoloader --no-interaction
# Nettoyer le cache
composer clear-cache
# Lister tous les packages installés
composer show
# Chercher un package
composer search livewire📦 NPM
Installation & Mise Ă jour de npm
# Vérifier la version de npm
npm --version
# Mettre Ă jour npm
npm install -g npm@latest
# Vérifier la version de Node.js
node --version
# Mettre Ă jour Node.js (avec nvm)
nvm install node
nvm use nodeGestion des dépendances
# Installer toutes les dépendances (package-lock.json)
npm install
# Installer sans les dépendances de dev
npm install --production
# Réinstaller en nettoyant node_modules
rm -rf node_modules package-lock.json
npm install
# Nettoyer et réinstaller (alternative)
npm ci
# Mettre Ă jour tous les packages
npm update
# Mettre à jour un package spécifique
npm update tailwindcss
# Mettre à jour vers la dernière version (ignore semver)
npm install package@latestAjouter des packages
# Ajouter un package
npm install alpinejs
# Ajouter un package de dev
npm install --save-dev prettier
# Ajouter une version spécifique
npm install tailwindcss@^3.4.0
# Ajouter globalement (à éviter généralement)
npm install -g @vue/cliSupprimer des packages
# Supprimer un package
npm uninstall package-name
# Supprimer un package de dev
npm uninstall --save-dev package-name
# Supprimer globalement
npm uninstall -g package-nameBuild & Développement (Vite)
# Démarrer le serveur de développement
npm run dev
# Builder pour la production
npm run build
# Prévisualiser le build de production
npm run preview
# Watch mode (recompile automatiquement)
npm run dev -- --host
# Build avec analyse
npm run build -- --reportVérification & Diagnostic
# Voir les packages obsolètes
npm outdated
# Vérifier les vulnérabilités
npm audit
# Corriger automatiquement les vulnérabilités
npm audit fix
# Corriger mĂŞme avec breaking changes
npm audit fix --force
# Lister tous les packages installés
npm list
# Lister uniquement les dépendances directes
npm list --depth=0
# Voir les infos d'un package
npm info tailwindcss
# Nettoyer le cache
npm cache clean --force
# Vérifier l'intégrité des packages
npm cache verifyScripts personnalisés (package.json)
{
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"format": "prettier --write resources/**/*.{js,vue,css}",
"lint": "eslint resources/**/*.{js,vue}",
"watch": "vite build --watch"
}
}# Exécuter un script personnalisé
npm run format
npm run lint🔄 WORKFLOW LARAVEL + JETSTREAM
Premier déploiement / Installation
# 1. Cloner le projet
git clone repo-url
cd project
# 2. Installer les dépendances PHP
composer install
# 3. Configurer l'environnement
cp .env.example .env
php artisan key:generate
# 4. Installer les dépendances JS
npm install
# 5. Builder les assets
npm run build
# 6. Configurer la base de données
php artisan migrate --seedDéveloppement quotidien
# Terminal 1 : Laravel (backend)
php artisan serve
# Terminal 2 : Vite (frontend - hot reload)
npm run dev
# Terminal 3 : Queue worker (si nécessaire)
php artisan queue:work
# Terminal 4 : Commandes ponctuelles
php artisan migrate
php artisan tinkerMise Ă jour du projet
# 1. Récupérer les changements
git pull origin main
# 2. Mettre à jour les dépendances PHP
composer install
# 3. Mettre à jour les dépendances JS
npm install
# 4. Rebuilder les assets
npm run build
# 5. Exécuter les migrations
php artisan migrate
# 6. Nettoyer les caches
php artisan optimize:clearDéploiement en production
# 1. Mettre Ă jour le code
git pull origin main
# 2. Mettre en mode maintenance
php artisan down
# 3. Installer les dépendances (optimisé)
composer install --no-dev --optimize-autoloader --no-interaction
# 4. Installer et builder les assets
npm ci
npm run build
# 5. Migrations
php artisan migrate --force
# 6. Optimisations Laravel
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
# 7. Redémarrer les services
php artisan queue:restart
php artisan octane:reload # Si vous utilisez Octane
# 8. Retirer le mode maintenance
php artisan up🎯 PACKAGES ESSENTIELS JETSTREAM
Packages PHP (Composer)
# Core Laravel
laravel/framework # Framework Laravel
laravel/jetstream # Jetstream
livewire/livewire # Livewire
# Authentification & Sécurité
laravel/sanctum # API tokens
laravel/fortify # Backend auth
# Développement
laravel/pint # Code style
laravel/sail # Docker environment
nunomaduro/collision # Error reporting
fakerphp/faker # Données facticesPackages JS (npm)
# Core
vite # Build tool
laravel-vite-plugin # Plugin Vite pour Laravel
# UI/CSS
tailwindcss # Framework CSS
@tailwindcss/forms # Styles formulaires
@tailwindcss/typography # Styles typo
postcss # CSS processor
autoprefixer # Prefixes CSS
# JavaScript
alpinejs # JS framework (avec Livewire)
@livewire/alpine # Alpine + Livewire
axios # HTTP clientMettre Ă jour les packages Jetstream
# Composer
composer update laravel/jetstream laravel/fortify livewire/livewire
# npm
npm update tailwindcss alpinejs @livewire/alpine🔥 COMMANDES COMBINÉES PRATIQUES
# Reset complet du projet (développement)
composer install && npm install && npm run build
# Mise à jour complète
composer update && npm update && npm run build
# Optimisation production (une ligne)
composer install --no-dev -o && npm ci && npm run build && php artisan optimize
# Nettoyage complet (si problèmes)
rm -rf vendor node_modules composer.lock package-lock.json && composer install && npm install
# Build rapide après changements
npm run build && php artisan optimize:clear
# Préparation déploiement
composer install --no-dev -o && npm ci && npm run build && php artisan config:cache && php artisan route:cache && php artisan view:cacheâś… BONNES PRATIQUES
Composer
✅ À FAIRE
- Toujours versionner
composer.lock - Utiliser
composer installen production - Optimiser l’autoloader en production (
-o) - Vérifier régulièrement
composer outdated - Utiliser des versions spécifiques ou
^pour semver - Nettoyer le cache si erreurs étranges
❌ À NE PAS FAIRE
- Utiliser
composer updatedirectement en production - Ignorer
composer.lockdans .gitignore - Installer sans
--no-deven production - Oublier de tester les mises Ă jour en dev
- Mettre à jour tous les packages d’un coup sans tests
npm
✅ À FAIRE
- Toujours versionner
package-lock.json - Utiliser
npm cien production (plus rapide et déterministe) - Builder les assets avant de commit (si besoin)
- Tester
npm run buildavant de déployer - Utiliser
.nvmrcpour fixer la version Node - Nettoyer
node_modulessi erreurs persistantes
❌ À NE PAS FAIRE
- Versionner
node_modules/dans Git - Utiliser
npm installen production (préférernpm ci) - Oublier de builder en production
- Mélanger npm et yarn dans le même projet
- Ignorer les vulnérabilités de sécurité
🛠️ DÉPANNAGE
Problèmes Composer
# Erreur "Your lock file is out of date"
composer update --lock
# Erreur de mémoire
COMPOSER_MEMORY_LIMIT=-1 composer install
# Problème d'autoloader
composer dump-autoload
# Conflit de versions
composer why-not package/name version
composer depends package/name
# Nettoyer et réinstaller
rm -rf vendor composer.lock
composer install
# Problème de GitHub rate limit
composer config --global github-oauth.github.com YOUR_TOKENProblèmes npm
# Erreur "EACCES: permission denied"
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) /usr/local/lib/node_modules
# Nettoyer le cache
npm cache clean --force
# Réinstaller complètement
rm -rf node_modules package-lock.json
npm install
# Erreur de compilation Vite
rm -rf node_modules/.vite
npm run build
# Problème de version Node
nvm use 20 # ou la version requise
# Port déjà utilisé
# Tuer le processus sur le port 5173
lsof -ti:5173 | xargs kill -9Problèmes Tailwind/Vite
# Les styles ne se chargent pas
npm run build
php artisan optimize:clear
# Hot reload ne fonctionne pas
# Vérifier vite.config.js
npm run dev -- --host
# Assets non trouvés en production
# Vérifier que APP_URL est correct dans .env
npm run build
php artisan storage:link📊 VÉRIFICATION DE L’ÉTAT DU PROJET
# Statut Composer
composer outdated
composer validate
composer diagnose
# Statut npm
npm outdated
npm audit
npm list --depth=0
# Versions installées
composer show | grep laravel
npm list | grep tailwind
# Taille des dépendances
du -sh vendor/
du -sh node_modules/🚀 SCRIPTS UTILES (À ajouter dans composer.json)
{
"scripts": {
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
],
"post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
],
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
],
"fresh": [
"@php artisan migrate:fresh --seed"
],
"test": [
"@php artisan test"
]
}
}# Utiliser les scripts
composer fresh
composer test🔍 VERSIONS RECOMMANDÉES (Laravel 12)
# PHP
PHP >= 8.2
# Composer
Composer >= 2.6
# Node.js
Node.js >= 20.x (LTS)
npm >= 10.x
# Vérifier les versions
php -v
composer --version
node -v
npm -vđź’ˇ ALIAS PRATIQUES
Ajoutez dans ~/.bashrc ou ~/.zshrc:
# Composer
alias ci='composer install'
alias cu='composer update'
alias cda='composer dump-autoload'
alias co='composer outdated'
# npm
alias ni='npm install'
alias nu='npm update'
alias nci='npm ci'
alias ndev='npm run dev'
alias nbuild='npm run build'
# Laravel combiné
alias fresh='composer install && npm install && npm run build && php artisan migrate:fresh --seed'
alias deploy='composer install --no-dev -o && npm ci && npm run build && php artisan optimize'📝 CHECKLIST MISE À JOUR MAJEURE
Avant de mettre Ă jour Laravel ou des packages majeurs :
- Sauvegarder la base de données
- Créer une branche Git
- Lire les notes de version (CHANGELOG)
- Vérifier les breaking changes
- Tester en local d’abord
- Mettre Ă jour composer.json progressivement
- Exécuter les tests automatisés
- Vérifier les logs d’erreurs
- Tester toutes les fonctionnalités critiques
- Merger seulement si tout fonctionne
🎯 Commande ultime pour repartir de zéro (DÉVELOPPEMENT uniquement) :
rm -rf vendor node_modules composer.lock package-lock.json && \
composer install && \
npm install && \
npm run build && \
php artisan migrate:fresh --seed && \
php artisan optimize:clear⚡ Tout est prêt pour le développement !