Skip to content

Instantly share code, notes, and snippets.

@Klerith
Last active November 14, 2024 19:47
Show Gist options
  • Save Klerith/47af527da090043f604b972b22dd4c01 to your computer and use it in GitHub Desktop.
Save Klerith/47af527da090043f604b972b22dd4c01 to your computer and use it in GitHub Desktop.
Configurar proyecto de Node con TypeScript

Pasos para usar Node con TypeScript con Nodemon

Más información - Docs Oficiales

  1. Instalar TypeScript y tipos de Node, como dependencia de desarrollo
npm i -D typescript @types/node
  1. Inicializar el archivo de configuración de TypeScript ( Se puede configurar al gusto)
npx tsc --init --outDir dist/ --rootDir src
  1. Opcional - Para traspilar el código, se puede usar este comando
npx tsc
npx tsc --watch
  1. Configurar Nodemon y Node-TS
npm install -D ts-node nodemon
  1. Crear archivo de configuración de Nodemon - nodemon.json
{
  "watch": ["src"],
  "ext": ".ts,.js",
  "ignore": [],
  "exec": "npx ts-node ./src/app.ts"
}
  1. Crear script para correr en desarrollo en el package.json
  "dev": "nodemon"
  "dev": "npx nodemon" // En caso de no querer instalar nodemon
  1. Instalar rimraf (Herramienta que funciona similar al rm -f) eliminar directorio
npm install -D rimraf
  1. Crear scripts en el package.json para construir e iniciar en producción
   "build": "rimraf ./dist && tsc",
   "start": "npm run build && node dist/app.js"

Node con TypeScript - Recomendado

  1. Instalar TypeScript y demás dependencias
npm i -D typescript @types/node ts-node nodemon rimraf
  1. Inicializar el archivo de configuración de TypeScript ( Se puede configurar al gusto)
npx tsc --init --outDir dist/ --rootDir src
  1. Crear archivo de configuración Nodemon - nodemon.json
{
  "watch": ["src"],
  "ext": ".ts,.js",
  "ignore": [],
  "exec": "npx ts-node ./src/app.ts"
}
  1. Crear scripts para dev, build y start
  "dev": "nodemon",
  "build": "rimraf ./dist && tsc",
  "start": "npm run build && node dist/app.js"
@cristianps1988
Copy link

Excelente, muchas gracias profe Fernando

@jaimeviloriogreen
Copy link

jaimeviloriogreen commented Feb 18, 2024

Fernando, y que tal tsx, funciona genial, me lo encuentro más rápido que ts-node y permito el uso de ESNext.

@Hernanarica
Copy link

Hola! Al día de hoy node tiene su --watch, esto puede reemplazar a nodemon?

@MikeSV66
Copy link

Que buena guía!

@angelcgar
Copy link

Eres el mejor FH, también funciona en Arch Linux, saludos :)

@CarlosHdz7
Copy link

Buenísimo! muchas gracias Fernando

@Yalico23
Copy link

Yalico23 commented Sep 3, 2024

Excelente maestro

@cquesadad
Copy link

Les dejo por aquí el array de objeto de los héroes ya creados:

const heroes = [
{
id: 1,
name: 'Ironman',
owner: 'Marvel',
},
{
id: 2,
name: 'Spiderman',
owner: 'Marvel',
},
{
id: 3,
name: 'Batman',
owner: 'DC',
},
];

@AngelPhp122
Copy link

la opción simplificada de la configuración de typescript esta genial

@Choster900
Copy link

Les dejo por aquí el array de objeto de los héroes ya creados:

const heroes = [ { id: 1, name: 'Ironman', owner: 'Marvel', }, { id: 2, name: 'Spiderman', owner: 'Marvel', }, { id: 3, name: 'Batman', owner: 'DC', }, ];

Gracias hermano

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment