A más de un programador de Laravel le ha pasado esto: ha terminado el proyecto, pasado las pruebas y está listo para enviarlo a producción pero pasa algo: la carpeta vendor tiene un tamaño realmente grande.
Esto es porque la carpeta vendor tiene todos los paquetes que necesita el framework, pero hay unos de ellos que solamente son usados en modo desarrollo y que no son necesarios en producción.
Por eso es que hoy veremos cómo eliminar los paquetes innecesarios de vendor, o mejor dicho, cómo instalar únicamente los necesarios.
Composer
Si programas en Laravel debes usar por fuerza Composer. En caso de que no lo tengas instalado mira aquí cómo hacerlo, por otro lado, te invito a que leas este post en donde explico las ventajas de Composer.
Instalar dependencias que no sean de desarrollo
El truco es simple. Cuando llevas un control de versiones no guardas la carpeta vendor, esa carpeta se crea cuando ejecutas composer install
como vimos en Qué hacer después de clonar un proyecto de Laravel.
En fin, en el momento de instalar las dependencias pasa la opción de --no-dev
así:
composer install --no-dev
De esta manera no se van a instalar las dependencias de desarrollo. Gracias a ello tu carpeta de vendor tendrá solamente lo necesario para que tu app funcione, y como estará en producción no habrá problemas.
Si no tienes acceso a la terminal en producción
Esto es totalmente y me ha pasado miles de veces: no tener acceso a composer en el servidor de producción.
Seguramente la opción que tienes es que debes subir los archivos por algo como FTP; muy bien, pues antes de subir el proyecto elimina la carpeta vendor.
Después de eso ejecuta en tu PC local:
composer install --no-dev
Espera a que se instalen los paquetes y súbelos. Después de ello, si hace falta, instala todas las dependencias normalmente.
En resumen: borra la carpeta, instala dependencias sin tomar en cuenta las de desarrollo, sube esa carpeta al servidor y listo.
muchas gracias me sirvio, esos benditos archivos superan los inodos permitidos de muchos hosting gratuitos
No lo había visto de ese modo (mi problema era que el ancho de banda de mi ISP es realmente limitado y tenía que subir la menor cantidad de archivos posible) pero tienes razón.
Saludos 🙂
Buenas tardes Gabriel. Estoy intentando por primera vez subir mi proyecto laravel a un servidor gratuito y tengo el problema de la cantidad de inodes.
Lo has podido resolver de esa manera? Borro la carpeta vendor, subo al servidor y debería funcionar?
Gracias!