Tsconfig,当我使用多个 rootDirs 时,如何在构建到 dist 时将结构 src 文件展平

Vic*_*rov 5 typescript typeorm nestjs

我有类型为 orm 和文件数据库迁移的嵌套 js 应用程序。适用于 Windows。我需要从 src 制作扁平结构以构建 dist,然后添加文件夹迁移。我有这个结构:

project/
  tsconfig.json
  tsconfig.build.json
  ormconfig.js
  migrations/
    **.file.ts
  src/
    app.module.ts
    main.ts
    common/
    modules/
Run Code Online (Sandbox Code Playgroud)

我需要构建:

dist
  migrations/
  common/
  modules/
  app.module.d.ts
  app/module.js
  main.d.ts
  main.js
Run Code Online (Sandbox Code Playgroud)

但我有:

dist
  migrstions/
  src/
  tsconfig.build.tsbuildinfo
Run Code Online (Sandbox Code Playgroud)

我的 tsconfig.json 文件:

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "rootDir": ".",
    "rootDirs": ["./src/*"]
  },
  "exclude": ["node_modules"]
}
Run Code Online (Sandbox Code Playgroud)

我的 ormconfig.js

module.exports = {
  type: process.env.DB_TYPE,
  host: process.env.DB_HOST,
  port: process.env.DB_PORT,
  username: process.env.DB_USERNAME,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
  entities: ['src/**/entities/index.ts'],
  migrations: ['migrations/*.ts'],
  migrationsRun: false,
  synchronize: false,
  cli: {
    migrationsDir: 'migrations',
  },
  charset: 'utf8mb4',
};
Run Code Online (Sandbox Code Playgroud)

T 尝试在 tsconfig 中添加路径:(通过解决方案How to configure tsconfig.json to output files from multiple source folders to single flat outDir?),但它对我不起作用。

"compilerOptions": {
   ...
   "rootDir": "./src",
   "paths": {
      "@app/migrations": ["./migrations"]
    }
   ...
}
Run Code Online (Sandbox Code Playgroud)

是否可以为这样的结构配置tsconfig,或者唯一的解决方案是将migrations文件夹转移到src?