Estructuras un proyecto de Node con package.json, módulos ES, dependencias de npm y scripts.
Abrir esta lección en KodokonUn proyecto real no cabe en un solo archivo: lo divides en módulos, archivos que exportan lo que ofrecen e importan lo que necesitan. Ya conoces la sintaxis import / export del curso de JavaScript; veamos cómo Node la habilita. Todo empieza con package.json, la tarjeta de identidad de tu proyecto: un archivo en formato JSON que describe su nombre, su versión y su configuración. Para crearlo, entra en una carpeta vacía y ejecuta npm init -y (la opción -y acepta todas las respuestas por defecto). Luego añade la línea "type": "module": le indica a Node que tus archivos .js usan módulos ES.
{
"name": "my-project",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node main.js",
"dev": "node --watch main.js"
}
}Creemos dos archivos en esta carpeta: math.js exporta una función, main.js la importa. Un detalle específico de Node: la importación de un archivo local debe empezar con ./ y terminar con la extensión .js. Ambas cosas son obligatorias, a diferencia de lo que toleran algunas herramientas web.
// math.js
export function add(a, b) {
return a + b;
}
// main.js
import { add } from "./math.js";
console.log(add(2, 3));La gran fortaleza de npm es su biblioteca mundial de paquetes: código escrito por otros, listo para usar. El comando npm install descarga un paquete en la carpeta node_modules de tu proyecto y lo añade a la sección dependencies de package.json: la lista de paquetes que tu proyecto necesita para funcionar. Un archivo package-lock.json, creado automáticamente, registra las versiones exactas instaladas, para que todo el mundo obtenga lo mismo. Probemos con chalk, un paquete que colorea el texto que se muestra en la terminal.
npm install chalkUn último pilar: los scripts de npm, atajos de comandos declarados en la sección scripts de package.json. npm run dev ejecuta el comando guardado con el nombre dev, por muy largo que sea el comando real. Nuestro script dev usa node --watch, una opción que reinicia automáticamente el programa cada vez que un archivo cambia: muy cómodo durante el desarrollo.
npm run start
npm run dev