Optimiza tus archivos de Laravel ANTES de producción
Anteriormente ya he comentado como puedes subir tu app a producción:
Laravel a producción/deployment mediante Apache y MySQL
Quería agregar un pequeño dato adicional relacionado con la carpeta vendor, ya que es clave entender cómo funciona especialmente cuando vamos a producción. Lo podemos comparar con lo que sucede en el ecosistema de Node.js con la carpeta node_modules.
Cuando creamos un proyecto en Laravel, es común que tengamos también una carpeta node_modules, especialmente si trabajamos con herramientas como Vue, React, Tailwind, etc. Esta carpeta contiene paquetes necesarios solo durante el desarrollo, y luego ejecutamos npm run build para generar los archivos optimizados para producción.
Con la carpeta vendor, sucede algo similar. Aunque puedes subirla tal cual a tu servidor de producción, lo ideal es optimizarla previamente, ya que contiene también dependencias que solo se usan durante el desarrollo.
Comando recomendado para optimizar vendor:
composer install --no-dev --optimize-autoloader
¿Qué hace cada parte?
- install Instala las dependencias.
- --no-dev: evita instalar dependencias marcadas como de desarrollo en el composer.json.
- --optimize-autoloader: genera un autoload más eficiente para mejorar el rendimiento.
Esto equivale, en términos simples, a tener una versión “minificada” de tus dependencias PHP para producción.
Limpieza de caché (muy importante)
En producción, también es recomendable limpiar la caché, ya que podría estar causando errores que en local no aparecen.
Puedes hacerlo con:
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan cache:clear
Si no tienes acceso a la terminal (como en un hosting compartido), puedes hacerlo manualmente desde un cliente FTP. Por ejemplo, puedes:
- Renombrar la carpeta bootstrap/cache
- Crear una nueva carpeta vacía llamada cache
Subir el proyecto y verificar que todo funcione
Si todo va bien después de unos días, puedes eliminar la carpeta vieja.
Recomendaciones prácticas
Antes de ejecutar el comando Composer: Mueve o renombra la carpeta vendor actual, por si la necesitas luego, ya que es la carpeta que usamos al momento de desarrollar.
No subas la carpeta vendor ni node_modules al repositorio Git, esto es importante si en base a los pasos anteriores renombras la carpeta vendor y la mantienes en el proyecto, va a ser rastreada por git.
Si vas a subir el proyecto por FTP: puedes también comprimirlo con ZIP (incluyendo la nueva carpeta vendor optimizada), súbelo y descomprímelo en el servidor.
Tip final
Estas recomendaciones yo mismo las aplico por ejemplo cuando voy a actualizar los archivos de la carpeta public/build, no la elimino de inmediato, si no, la renómbralo (por ejemplo, __build) y conserva ese respaldo unos días hasta asegurarte de que todo funciona bien.