es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configuración de TypeORM

Estoy escribiendo un servidor Typescript NodeJs. Uso TypeORM y para que funcione necesita un archivo de configuración con dos matrices de rutas o funciones a entidades y migraciones. Actualmente se ve así:

{
subscribers: ['build/subscriber/.js'],
migrations: ['build/migration/
.js'],
}

Cuando inicio mi aplicación, se transpilará con tsc y creará una carpeta de compilación con archivos js. Y en este caso, todo funciona bien. Pero TypeORM tiene una herramienta de línea de comando (CLI), y quiero usarla para crear migraciones. Pero no quiero transpilar todo el proyecto solo para crear la migración. Ejecutaría el comando CLI con ts-node y usaría archivos ts. Pero sin transpiración, “build/subscriber/*.js” no existe. ¿Puedo hacer algo para usar la CLI de TypeORM sin transpirar todo el proyecto?

PD Si cambio las rutas de configuración a:

{
subscribers: ['src/subscriber/.ts'],
migrations: ['src/migration/
.ts'],
}

El proyecto dejará de ejecutarse. ¿Puede haber una forma de verlos transpilados en el código o no para implementar algo como rutas opcionales?

{
subscribers: seTranspilado ? ['build/subscriber/.js'] : ['src/subscriber/.ts'],
migrations: seTranspilado ? ['build/migration/.js'] : ['src/migration/.ts'],
}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en node.js, typescript, typeorm y ts-node, existe una forma de utilizar TypeORM CLI sin tener que transpilar todo el proyecto. Idealmente, cambiando las rutas de configuración a:

    {
        subscribers: ['src/subscriber/*.ts'],
        migrations: ['src/migration/*.ts'],
    }
    

    debería funcionar. Sin embargo, si esto rompe el proyecto, entonces hay otra forma de abordar esto.

    Se puede implementar una ruta opcional de la siguiente manera:

    {
        subscribers: isTranspiled ?['build/subscriber/*.js'] : ['src/subscriber/*.ts'],
        migrations: isTranspiled ? ['build/migration/*.js'] : ['src/migration/*.ts'],
    }
    

    De esta manera, el comando CLI se puede ejecutar usando archivos ts y ts-node. Además, comprobando si el código está transpilado o no, el archivo de configuración puede elegir dinámicamente la ruta correcta a utilizar para entidades y migraciones.

Comments are closed.