3 - Creación y configuración de proyectos

Objetivo del tema

El propósito de este módulo es que puedas iniciar un proyecto con npm, comprender la estructura mínima requerida, diferenciar los tipos de dependencias y aprovechar los scripts para automatizar tareas frecuentes.

3.1 Inicializar un proyecto con npm init y npm init -y

Al ejecutar npm init dentro de una carpeta vacía, la CLI inicia un asistente interactivo que genera el archivo package.json. Este archivo describe el proyecto y enumera sus dependencias.

npm init
Asistente de npm init

El asistente solicita datos como nombre, versión, descripción, punto de entrada y licencia. Puedes modificar cualquiera de esos valores más adelante.

Cuando necesites una configuración rápida, utiliza npm init -y. Ese comando acepta todas las opciones por defecto y genera un package.json listo para editar.

npm init -y

Es recomendable revisar el archivo creado tras usar la opción -y para ajustar campos como name, description o author antes de compartir el proyecto.

3.2 Estructura mínima de un proyecto con npm

La estructura inicial dependerá del tipo de aplicación, pero existen carpetas y archivos habituales que facilitan la colaboración.

mi-aplicacion/
|-- package.json
|-- package-lock.json
|-- node_modules/
|-- src/
|   `-- index.js
`-- README.md
  • package.json describe el proyecto y sus dependencias.
  • package-lock.json registra las versiones exactas instaladas.
  • node_modules/ aloja las dependencias descargadas; no se comparte en el repositorio.
  • src/ contiene el código fuente, aunque puedes elegir otro nombre.
  • README.md documenta instrucciones de instalación y uso.

Si tu proyecto necesita archivos de configuración (por ejemplo, linters o transpiladores), agrégalos en la raíz para que sean visibles desde el inicio.

3.3 Dependencias y devDependencies

npm clasifica las dependencias en función de su uso:

  • dependencies: paquetes requeridos durante la ejecución del proyecto en producción.
  • devDependencies: herramientas necesarias solo en desarrollo (linters, transpiladores, suites de pruebas, etc.).

Instala cada grupo con el indicador adecuado para que quede registrado en el manifiesto.

npm install express                # Se guarda en dependencies
npm install --save-dev jest        # Se guarda en devDependencies

Mantener esta distinción permite que otros integrantes del equipo sepan qué herramientas son obligatorias para ejecutar la aplicación y cuáles son exclusivas del flujo de desarrollo.

3.4 Scripts en package.json

Los scripts definidos en package.json permiten encapsular comandos frecuentes bajo nombres cortos ejecutables con npm run. Al menos conviene definir scripts para iniciar la aplicación y correr pruebas.

{
  "name": "mi-aplicacion",
  "version": "1.0.0",
  "scripts": {
    "start": "node src/index.js",
    "dev": "nodemon src/index.js",
    "test": "jest",
    "lint": "eslint src"
  }
}
  • Ejecuta npm run start para iniciar el servidor.
  • Usa npm run dev cuando necesites recarga automática durante el desarrollo.
  • npm test es un alias que ejecuta el script test sin escribir run.

Define scripts descriptivos y consistentes para que el equipo reconozca de inmediato sus propósitos. Puedes encadenar comandos utilizando operadores del sistema operativo o paquetes como npm-run-all si necesitas tareas más complejas.

Resumen didáctico

Inicializar correctamente el proyecto, organizar su estructura, clasificar las dependencias y centralizar las tareas en scripts deja la base preparada para escalar tu aplicación. En los siguientes temas aprenderás a gestionar dependencias durante el ciclo de vida del proyecto.