← Node.js: JavaScript fuera del navegador

Sesión 4 · Semana 2

package.json y los scripts

Hoy · Hoja de ruta

  1. 1. Aprende: Qué declara el package.json y para qué sirven sus scripts.
  2. 2. Haz: Da a tu proyecto los comandos con los que se va a usar.
  3. 3. Comprueba: Cualquiera puede arrancarlo leyendo solo el package.json.

Antes de empezar · 5 minutos, sin apuntes

  1. Si te doy un proyecto que no conoces, ¿por dónde empiezas para saber cómo se arranca?
  2. ¿Qué comandos vas a repetir cien veces esta unidad?
  3. ¿Qué pasaría si cada persona del equipo arrancara el proyecto de una forma distinta?

La ficha del proyecto

npm init -y
{
  "name": "mi-api",
  "version": "1.0.0",
  "type": "module",
  "main": "src/servidor.js",
  "scripts": {
    "start": "node src/servidor.js",
    "dev": "node --watch src/servidor.js",
    "cli": "node src/cli.js"
  },
  "engines": { "node": ">=22" },
  "dependencies": {},
  "devDependencies": {}
}
Campo Qué declara
name, version Identidad del proyecto
type Sistema de módulos: module para ESM
scripts Los comandos del proyecto
dependencies Lo que hace falta para ejecutar
devDependencies Lo que hace falta solo para desarrollar
engines Qué versión de Node necesita

Los scripts

npm start
npm run dev
npm run cli -- listar

Los scripts son la interfaz del proyecto

El package.json es lo primero que abre quien llega a un proyecto que no conoce. Si arrancar requiere recordar una orden larga con banderas, alguien la escribirá mal.

Un proyecto bien montado se arranca con npm start, se desarrolla con npm run dev y se prueba con npm test, y esos nombres son los mismos en todas partes. Es la misma idea que verás en el módulo de servidor con Maven.

El --watch de Node reinicia el programa solo cuando cambia un fichero. Antes hacía falta una dependencia para eso; ahora viene incluido.

Los dos guiones de npm run cli -- listar separan los argumentos del script de los de npm.

Tarea 4 · La interfaz del proyecto

  1. Crea el package.json con npm init y añade "type": "module".
  2. Define los scripts start, dev y cli.
  3. Declara engines con la versión de Node.
  4. Comprueba que npm run dev recarga al guardar.
  5. Escribe un README.md con las tres órdenes y qué hace cada una.
  6. Pásale el proyecto a un compañero y comprueba que lo arranca sin preguntarte.
Objetivo mínimoTres scripts funcionando y un README que basta para arrancar.
Si lo tienesAñade un script que ejecute el CLI con datos de prueba.
RetoEncadena dos scripts para que uno prepare los datos antes de arrancar.

Checkpoint · fin de la sesión 4

  • Tu proyecto tiene package.json con ESM declarado.
  • Los comandos habituales están como scripts.
  • El README dice cómo arrancar.
  • Sabes qué hace --watch.

Antes de cerrar · 2 minutos, sin mirar

  1. ¿Qué diferencia hay entre dependencies y devDependencies?
  2. ¿Para qué sirven los dos guiones en npm run cli -- listar?
  3. ¿Qué declara "type": "module"?
Ver respuestas

1 · Las primeras hacen falta para ejecutar en producción; las segundas, solo para desarrollar y probar.

2 · Para separar los argumentos destinados al script de los de npm.

3 · Que los ficheros del proyecto usan módulos ES, con import y export.