1.0.8 • Published 4 years ago

typescript-nodejs-proyect-template v1.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago
mkdir typescript-starter
cd typescript-starter

Usar el flag -y al crear el package.json aprobará todos los valores por defecto y así evitará tener que responder a cada pregunta en el proceso de creación del file.

npm init -y

Instalamos las dependecias de typescript y los types de node para typescript.

npm install typescript --save-dev
npm install @types/node --save-dev
npx tsc --init --rootDir src --outDir build --esModuleInterop --resolveJsonModule --lib es6 --module commonjs --allowJs true --noImplicitAny true

Descripción de Flags:

rootDir: aquí es donde TypeScript busca nuestro código. Lo hemos configurado para buscar en la carpeta src /. Ahí es donde escribiremos nuestro TypeScript.

outDir: donde TypeScript coloca nuestro código compilado. Queremos que vaya a una carpeta build /.

esModuleInterop: si estuvo en el espacio de JavaScript durante los últimos años, es posible que haya reconocido que los sistemas de módulos se habían descontrolado un poco (AMD, SystemJS, módulos ES, etc.). Para un tema que requiere una discusión mucho más larga, si usamos commonjs como nuestro sistema de módulos (para las aplicaciones de Node, debería estarlo), entonces necesitamos que esto se establezca en verdadero.

resolveJsonModule: si usamos JSON en este proyecto, esta opción permite que TypeScript lo use.

lib: esta opción agrega tipos de ambiente a nuestro proyecto, lo que nos permite confiar en características de diferentes versiones de Ecmascript, bibliotecas de prueba e incluso la API DOM del navegador. Nos gustaría utilizar algunas funciones del idioma es6. Todo esto se compila en es5.

module: commonjs es el sistema de módulos de nodo estándar en 2019. Usemos eso.

allowJs: si está convirtiendo un antiguo proyecto de JavaScript a TypeScript, esta opción le permitirá incluir archivos .js entre los .ts.

noImplicitAny: en los archivos TypeScript, no permita que un tipo se especifique de forma implícita. Cada tipo debe tener un tipo específico o declararse explícitamente como alguno. Sin anys implícitos.

Estructura básica de tsconfig.json para usar npm package en proyectos con typescript:

{
  "compilerOptions": {
    "target": "es5",                          
    "module": "commonjs",                    
    "lib": ["es6"],                     
    "declaration": true,
    "declarationMap": true,
    "outDir": "build",                          
    "rootDir": "src",
    "composite": true,
    "strict": true,         
    "noImplicitAny": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}

Creamos el directorio src y el file src/index.ts. En este file es dónde el proyecto se iniciará.

mkdir src
touch src/index.ts

Añade esta línea de código en index.ts

console.log('Hello world!');

Compilamos typescript.

npx tsc

Esto generará la siguiente salida en build/index.js:

"use strict";
console.log('Hello world!');

Instalar ts-node para trabajar en tiempo real con typescript sin necesidad de compilar continuamente el código.

npm install --save-dev ts-node nodemon

Crear en el root del proyecto el file nodemon.json y añadirle las siguientes líenas:

{
  "watch": ["src"],
  "ext": ".ts,.js",
  "ignore": [],
  "exec": "ts-node ./src/index.ts"
}

En package.json, en la sección de "scripts", añadir la sigueinte línea:

"start:dev": "nodemon"

Luego ejecutar npm run start:dev.

Instalar rimraf para limpiar y compilar el proyecto para producción.

npm install --save-dev rimraf

En package.json, en la sección de "scripts", añadir la sigueinte línea:

"build": "rimraf ./build && tsc"

En package.json, en la sección de "scripts", añadir la sigueinte línea:

"start": "npm run build && node build/index.js"

Ejecutar npm run start para correr el proyecto en producción.

Para publicar el npm package se sigue el siguiente proceso:

npm login

Entrar username y password de npm y luego el email al cual está atada la cuenta. En el file package.json ajustar los valores de:

{
  "name": "El nombre del proyecto",
  "version": "1.0.0", ← la versión del proyecto
  "description": "Descripción del proyecto",
  ...
  "keywords": ["varios", "keywords", "para que sea fácil", "de encontrar"],
  "author": "mi nombre como desarrollador o el nombre de la compañía",
  ...
}

Luego ejecutar npm publish para publicar el package. Para actualizar el npm package es necesario siempre actualizar la versión del mismo en el file package.json sección "version:" El control de versiones se debe entender de la siguiente manera:

Estatus del códigoEstadoRegla de versiónEjemplo númerico de versión
Primera publicaciónNuevo productoComienza en 1.0.01.0.0
Compatibilidad con versiones anteriores y corrección de erroresPublicación de parcheSe incrementa el tercer dígito1.0.1
Compatibilidad con versiones anteriores y nuevas integracionesPublicación menorSe incrementa el segundo dígito y se reinicia el tercero a cero1.1.0
Cambios que rompen con versiones anterioresPublicación mayorSe incrementa el primer dígito y se reinicia el segundo y tercer dígitos a cero2.0.0
1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago