que-es-carpeta-node-modules-de-npm

Qué es la carpeta Node_modules de NPM

  • 3 min

Cuando trabajas con proyectos Node.js que utilizan NPM para gestionar dependencias, verás aparecer una carpeta llamada node_modules.

A simple vista, puede parecer una amalgama de carpetas y archivos sin sentido. Pero, en realidad, la carpeta node_modules es un componente esencial del ecosistema de Node.js.

En la carpeta node_modules NPM almacena todas las dependencias de tu proyecto. Cuando escribes código que requiere paquetes externos, NPM busca y utiliza las versiones adecuadas de esos paquetes almacenados en esta carpeta.

Cada vez que ejecutas el comando npm install para instalar un paquete, NPM descarga el paquete y todas sus dependencias requeridas desde el registro de paquetes de NPM y las coloca en esta carpeta.

La estructura de la carpeta node_modules puede llegar a ser muy extensa y variar dependiendo de la cantidad de dependencias y sus propias dependencias. Pero, afortunadamente, no es una carpeta que tengas que tocar a mano. NPM hará el trabajo por ti.

Estructura de la carpeta node_modules

Cada dependencia se instala dentro node_modules en su propia carpeta, con el nombre del paquete. Cada subcarpeta puede contener archivos y carpetas correspondientes a los módulos, que la dependencia necesita para funcionar.

Vasmos a ver un ejemplo (muy) simplificado de la de la estructura que podría tener la carpeta node_modules para un proyecto con dos dependencias: “express” y “lodash”.

📂 node_modules/ ├── 📂 express/ │ ├── 📄 index.js │ ├── 📂 lib/ │ │ ├── 📄 application.js │ │ ├── 📄 request.js │ │ └── 📄 response.js │ ├── 📂 node_modules/ │ │ ├── 📂 mime/ │ │ │ ├── 📄 index.js │ │ │ └── 📄 LICENSE │ │ ├── 📂 accepts/ │ │ │ └── 📄 index.js │ │ └── … │ └── … └── 📂 lodash/ ├── 📄 index.js ├── 📄 chain.js └── …

Así que, en este ejemplo, tenemos la carpeta node_modules con dos subcarpetas: express y lodash. A su vez, cada una de estas subcarpetas contiene los archivos y carpetas necesarios para que las dependencias funcionen correctamente.

Es importante que no modifiques manualmente los archivos dentro de la carpeta node_modules, ya que NPM se encarga de gestionar las dependencias y sus versiones de manera automática.

Si necesitas realizar cambios o personalizaciones en una dependencia, puedes hacerlo desde tu propio proyecto en lugar de modificar directamente la carpeta node_modules.