Tabla de Contenidos

05 - Node y npm

Node ejecuta JavaScript (tema 04) fuera del navegador: en servidores, en herramientas de línea de comandos y en la compilación del proyecto. npm es su gestor de paquetes: descarga dependencias y define los comandos de ejecución y compilación, con un papel análogo al de Maven en Java.

node --version
node src/main.js    # ejecuta un archivo
node                # REPL interactivo para probar fragmentos

1. npm: dependencias del proyecto

npm init -y                         # crea package.json con valores por omisión
npm install typescript              # añade una dependencia al proyecto
npm install --save-dev typescript   # ... que solo se usa al compilar o probar

El package.json declara el proyecto y sus comandos:

{
  "name": "importador-libros",
  "version": "1.0.0",
  "scripts": {
    "build": "tsc",
    "start": "node dist/main.js"
  },
  "devDependencies": {
    "typescript": "^5.7.0"
  }
}

Sección Contiene
scripts comandos del proyecto; se ejecutan con npm run build
dependencies paquetes que la aplicación necesita en ejecución
devDependencies herramientas de compilación y pruebas, como TypeScript

2. node_modules y package-lock.json

# .gitignore
node_modules/
dist/
.env

3. Estructura del proyecto

importador-libros/
├── src/                    # código fuente
│   └── main.js
├── dist/                   # resultado de la compilación (tema 06)
├── node_modules/
├── package.json
├── package-lock.json
└── .gitignore

// src/main.js
console.log("Biblioteca lista");

El objeto process expone las variables de entorno definidas en el .env (tema 03): process.env.PORT.

Al pasar a TypeScript (tema 06) el código fuente de src/ cambia a extensión .ts y el compilado queda en dist/: la estructura del proyecto no cambia.

Al clonar un repositorio con package.json, el primer paso siempre es npm install: node_modules no viaja con el código, y sin él faltan todas las herramientas del proyecto.