typescript-nodejs-proyect-template
v1.0.8
Published
```sh mkdir typescript-starter cd typescript-starter ```
Downloads
22
Readme
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ódigo | Estado | Regla de versión | Ejemplo númerico de versión | |---|---|---|---| | Primera publicación | Nuevo producto | Comienza en 1.0.0 | 1.0.0 | | Compatibilidad con versiones anteriores y corrección de errores | Publicación de parche | Se incrementa el tercer dígito | 1.0.1 | | Compatibilidad con versiones anteriores y nuevas integraciones | Publicación menor | Se incrementa el segundo dígito y se reinicia el tercero a cero | 1.1.0 | | Cambios que rompen con versiones anteriores | Publicación mayor | Se incrementa el primer dígito y se reinicia el segundo y tercer dígitos a cero | 2.0.0 |