Skip to content

Instantly share code, notes, and snippets.

@MilthonB
Forked from Klerith/pasos-node-typescript.md
Created March 5, 2024 00:45
Show Gist options
  • Save MilthonB/c1426f9d901483f88a53db95ed68100f to your computer and use it in GitHub Desktop.
Save MilthonB/c1426f9d901483f88a53db95ed68100f 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"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment