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.