Pequeño truco para reducir el tamaño de vendor en Laravel

Publicado por parzibyte en

Instalar dependencias pero evitar las de desarrollo o dev - Laravel y Composer

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.

Instalar dependencias pero evitar las de desarrollo o dev - Laravel y Composer

Instalar dependencias pero evitar las de desarrollo o dev – Laravel y Composer

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.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: