-
Crear una carpeta e iniciar un proyecto de node
npm init -y -
Creamos el fichero .editorconfig
-
Creamos el fichero .gitignore
-
Instalar TS y los tipos de Node
npm i -D typescript @types/node -
Generar el fichero tsconfig con
npx tsc --init -
Configuramos el fichero tsconfig colocando los siguientes parámetros:
- "target": "ESNext"
- "module": "ESNext"
- "rootDir": "./src"
- "moduleResolution": "node10"
- "outDir": "./dist"
-
Creamos las carpetas src y dist en la raíz del proyecto.
-
Editamos los scripts del package.json añadiendo el script build con referencia a TS en modo watch:
tsc -w -
Creamos el fichero de reglas eslintconfig con
npm init @eslint/config@latest -
Instalamos Vitest en nuestro proyecto:
npm install -D vitest -
Creamos el fichero
vite.config.jsutilizando lo que aparece en su web:import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { // ... }, });
-
Editamos package.json añadiendo los siguientes scripts:
- "test": "vitest run"
- "test:c": "vitest run --coverage"
- "lint": "eslint . --ext .ts"
-
Editamos tsconfig: "types": ["vitest/globals"]
-
Opcional: Inicializar un Repositorio de Git
Node es un entorno de ejecución para JS sin la necesidad de utilizar un navegador, es un ecosistema de paquetes de JS debido a que viene con npm. Esta construido con el motor JS V8 de Chrome
- Nos permite ejecutar JS en el lado del servidor
- Su motor es muy rápido debido a que esta construido en C++
- Multiplataforma
- Ejecuta código asíncrono y orientado a objetos
Son las operaciones de entrada/salida (E/S), estás impactan en el rendimiento debido a la alta latencia de ese tipo de operaciones.
Node es un comando que arranca este proceso en nuestro sistema operativo, ya no en el navegador.
Nos permite entrar dentro del Sistema Operativo, esto respeta los permisos que tenga el usuario.
Nos entrega información relevante:
- argv: Nos proporciona los argumentos del archivo que estamos ejecutando y donde se encuentra node dentro del programa.
- env: Nos muestras las variables de entorno del sistema.
Ahora cuando hagamos una instrucción, si la utilizamos va a universalizar los scripts para que se pueden ejecutar en cualquier terminal sin problemas
Es primordial ya que ahí guardaremos los accesos al servidor, lo vamos a ocultar en el .gitignore
Librería que nos ayuda a la hora de enlazar nuestro fichero .env a los documentos JS/TS que estaremos utilizando en nuestro proyecto.
Es el entorno interactivo que permite ejecutar código JS en tiempo real, con esto podemos realizar muchas cosas.
Es la manera como el usuario interactúa con el terminal. Son los streams de datos y estos permiten leer y escribir datos de forma asíncrona.
POSIX define 3 streams: entradas, salidas y errores
JS no cuenta con esto, pero esta es una ventaja ya que podemos crear este sub stream y adaptarlo para que funcione.
Es la orientación a objetos de Node
Node es perfecto para crear estos scripts haciendo lo siguiente:
- Hace el comando ejecutable
- Procesa los argumentos y los datos que se van a utilizar
Esto se hace configurando un shebang al inicio del fichero, es el siguiente: #!/usr/bin/env node