Modo estándar versus modo monorepo
En mi artículo anterior, vimos por qué y cómo usar NestJS, en este artículo, veremos el espacio de trabajo de NestJS.
NestJS admite dos modos:
- Modo estandar
- Modo Monorepo
Modo estandar
Cuando creamos una nueva aplicación usando nest new <app-name>, estamos usando el modo estándar. En modo estándar, TypeScript usa tsc como compilador. A continuación se muestra cómo esta conformada la estructura de carpetas de una aplicación en modo estándar.
Un modo monorepo es donde tenemos más de una aplicación, generalmente, es una aplicación y una biblioteca, ya tenemos una aplicación, agreguemos una biblioteca usando el siguiente comando. Agregará un nuevo proyecto de biblioteca.
nest generate lib shopping-libAhora, como estamos en modo monorepo, en lugar de tsc, webpack se utilizará como herramienta de compilación. Puede abrir el archivo nest-cli.json y ver cómo se agregan las siguientes líneas de código. compilerOptions tiene webpack en true.
{
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"projects": {
"shopping-lib": {
"type": "library",
"root": "libs/shopping-lib",
"entryFile": "index",
"sourceRoot": "libs/shopping-lib/src",
"compilerOptions": {
"tsConfigPath": "libs/shopping-lib/tsconfig.lib.json"
}
}
},
"compilerOptions": {
"webpack": true
}
}Y después de agregar una biblioteca, la estructura de la aplicación se verá a continuación:
Veamos algunos archivos importantes:
-
tsconfig.json: el archivo de configuración que se utilizará mientras se ejecutatscpara transpilar sus archivos. -
nest-cli.json: el archivo de configuración de Nest CLI tiene una lista de proyectos cuando estamos en modo monorepo y define qué herramienta de compilación estamos usandowebpacken monorepo y, de forma predeterminada, estsc. -
main.ts: Este es el archivo de entrada para nuestra aplicación NestJS y tiene una funciónbootstrap()para arrancar nuestra aplicación. De forma predeterminada, el servidor se ejecuta en el puerto 3000, puede cambiarlo y, mientras lo usa en producción, podemos usar una variable de entorno. -
app.module.ts: este es nuestro módulo raíz que ha registrado todos los módulos, controladores y servicios. -
app.controller.ts: nuestra aplicación debe tener al menos un controlador definido y este es nuestro controlador predeterminado. -
app.service.ts: podemos tener múltiples servicios en nuestra aplicación. Este es un servicio de muestra agregado como parte del espacio de trabajo, esto es opcional. -
libs: las bibliotecas pueden tener código reutilizable como servicio, tuberías (pipes), protectores (guards) o interceptores.
Si está compilando una aplicación Full-Stack con Angular/React.js y desea utilizar NestJS como back-end, debe considerar NxDevTools, que ofrece muchas características.
Aprendimos sobre el espacio de trabajo NestJS y dos modos que están disponibles y cómo difieren, y cómo podemos convertir nuestro espacio de trabajo al modo monorepo.
También vimos diferentes archivos, que son importantes y por qué son útiles. En la próxima publicación, discutiremos los controladores y cómo podemos crear y configurar endpoints.



