Skip to content

Instantly share code, notes, and snippets.

@intelguasoft
Created April 2, 2020 06:23
Show Gist options
  • Select an option

  • Save intelguasoft/cf33ffb02162a5a1ed34428f60cc3599 to your computer and use it in GitHub Desktop.

Select an option

Save intelguasoft/cf33ffb02162a5a1ed34428f60cc3599 to your computer and use it in GitHub Desktop.
Se estudia los dos modos en los que podemos usar NestJS, standard y monorepo...

Explorando el espacio de trabajo de NestJS

Modo estándar versus modo monorepo

Fondo de NestJS

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 Workspace

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.

Modo Monorepo

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-lib

Ahora, 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 ejecuta tsc para 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 usando webpack en monorepo y, de forma predeterminada, es tsc.

  • main.ts: Este es el archivo de entrada para nuestra aplicación NestJS y tiene una función bootstrap() 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.


Herramienta para una aplicación Full-Stack con NestJS

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.


Conclusión

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment