📦 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.5

Gestion 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-dependencies

Ajouter 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-dependencies

Supprimer 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-update

Optimisation

# 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-autoload

Vé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/framework

Commandes 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 node

Gestion 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@latest

Ajouter 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/cli

Supprimer 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-name

Build & 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 -- --report

Vé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 verify

Scripts 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 --seed

Dé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 tinker

Mise Ă  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:clear

Dé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 factices

Packages 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 client

Mettre Ă  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 install en 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 update directement en production
  • Ignorer composer.lock dans .gitignore
  • Installer sans --no-dev en 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 ci en production (plus rapide et dĂ©terministe)
  • Builder les assets avant de commit (si besoin)
  • Tester npm run build avant de dĂ©ployer
  • Utiliser .nvmrc pour fixer la version Node
  • Nettoyer node_modules si erreurs persistantes

❌ À NE PAS FAIRE

  • Versionner node_modules/ dans Git
  • Utiliser npm install en production (prĂ©fĂ©rer npm 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_TOKEN

Problè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 -9

Problè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 !