Hoy · Hoja de ruta
- 1. Aprende: Qué declara el
package.jsony para qué sirven sus scripts. - 2. Haz: Da a tu proyecto los comandos con los que se va a usar.
- 3. Comprueba: Cualquiera puede arrancarlo leyendo solo el
package.json.
Antes de empezar · 5 minutos, sin apuntes
- Si te doy un proyecto que no conoces, ¿por dónde empiezas para saber cómo se arranca?
- ¿Qué comandos vas a repetir cien veces esta unidad?
- ¿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
- Crea el
package.jsonconnpm inity añade"type": "module". - Define los scripts
start,devycli. - Declara
enginescon la versión de Node. - Comprueba que
npm run devrecarga al guardar. - Escribe un
README.mdcon las tres órdenes y qué hace cada una. - Pásale el proyecto a un compañero y comprueba que lo arranca sin preguntarte.
Checkpoint · fin de la sesión 4
- Tu proyecto tiene
package.jsoncon 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
- ¿Qué diferencia hay entre
dependenciesydevDependencies? - ¿Para qué sirven los dos guiones en
npm run cli -- listar? - ¿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.