Mis pensamientos sobre el debate sobre el tamaño de la carpeta node_modules
Solía enojarme por el node_modules
tamaño de la carpeta. ¿Cómo puede una aplicación JavaScript tener un tamaño de 100, 200 MB sin que yo agregue ninguna línea de código? ¡Acabo de ejecutarla npx create-react-app todolist
y descargué 218,7 MB de contenido ! (Lo acabo de comprobar, es un número real).
Siempre que pienses en el tamaño de node_modules, piensa en los millones de horas-hombre que los programadores dedicamos a ello.
Todo esto es software de código abierto. Software que se puede inspeccionar y del que se puede aprender. Gentilmente donado por programadores y empresas de todo el mundo. Es un esfuerzo global que a alguien le resultó muy fácil aprovechar. npm
Primero fue la herramienta y después la empresa.
Todos acordamos publicar nuestro código en sus servidores, y la gente construyó cosas encima, otras cosas encima, hasta que llegamos al punto en que teníamos iniciadores rápidos (como create-react-app o Vue CLI, por ejemplo) que podemos usar para tener mucho poder en nuestras manos de forma gratuita.
¿Son 200 MB demasiados en la era del almacenamiento rápido del orden de TB?
Tenga en cuenta que la gran mayoría de este tamaño son pruebas, documentación y demás. Además, la gran mayoría del código restante solo se utiliza en el entorno de desarrollo. No es como si fuera a entregar una aplicación de 200 MB al cliente, creo que esto se entiende bien.
Tomé el ejemplo de create-react-app. ¿Qué hay en esos 200 MB?
Para empezar, create-react-app contiene
- un compilador (Babel)
- un empaquetador (Webpack)
- un minificador de código
- un linter (ESLint)
- una herramienta de canalización de estilos (SCSS)
- Un servidor de desarrollo con recarga en vivo
- Un corredor de pruebas (Jest)
Si quieres escribir una aplicación para Mac o iPhone, tienes que instalar Xcode
, el IDE proporcionado por Apple. Xcode
tiene (espera…) casi 14 GB de tamaño. Eso es 70 veces el tamaño de node_modules. Es cierto que estamos comparando dos cosas diferentes, pero node_modules contiene todo lo que necesitas para empezar a trabajar en tu código. Puedes combinarlo con VS Code, que tiene un tamaño de 200 MB, o con Sublime Text, que tiene 30 MB; no importa, nadie es ni siquiera estrictamente necesario (mientras que no puedes crear una aplicación iOS/macOS sin Xcode
).Te recomendamos Estufa de pellets
Si le preocupa que su disco duro se llene de módulos, pnpm
existe una solución óptima que centraliza los módulos en una ubicación y todas sus aplicaciones utilizan esos módulos en lugar de crear su propia versión local. Por ejemplo, se utiliza en herramientas de codificación en línea como Glitch .
He leído personas que se preguntan cómo pueden auditar el código base para detectar problemas de seguridad u otros problemas si nuestras aplicaciones dependen demasiado de código escrito por otros.
Es una elección, ¿no? No estás obligado a usar módulos. Puedes crear tu propia versión de herramientas que no requiera todos esos módulos, pero luego tendrás que mantener ese código, probarlo, administrar nuevas versiones cuando sea necesario actualizar cosas y más trabajo .
Tuve la oportunidad de trabajar con otros lenguajes y ecosistemas donde la vitalidad y las oportunidades de npm habrían sido una bendición, y en cambio tuve que construir mi propia pequeña biblioteca para todo, ya que las cosas que encontré distribuidas por desarrolladores de terceros eran inexistentes o estaban abandonadas desde hacía un par de años y no se mantenían actualizadas con el resto del lenguaje.
Tal vez podríamos tener una bandera para descargar solo el código de producción en lugar de toda la documentación, pruebas y demás. Pero esta es solo una idea que me vino a la mente ahora, no estoy seguro de cómo se podría hacer.
De cualquier modo: ¡larga vida node_modules
!
Tips para principiantes de JavaScript
Tal vez te puede interesar:
- Cómo leer un archivo CSV con Node.js
- Cómo obtener los nombres de todos los archivos en una carpeta en Node
- Cómo renombrar archivos de forma masiva en Node.js
- Cómo comprobar la versión actual de Node.js en tiempo de ejecución
El tamaño de la carpeta node_modules no es un problema. Es un privilegio.
Solía enojarme por el node_modulestamaño de la carpeta. ¿Cómo puede una aplicación JavaScript tener un tamaño de 100, 200 MB sin que yo agregue nin
programar
es
2025-01-17
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente