Tsconfig, как сгладить структуру файлов src при сборке в dist, когда я использую несколько rootDirs - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть приложение jest js с типом orm и файлами миграций базы данных.Актуально для Windows.Мне нужно сделать сплющенную структуру из src для построения dist, а затем добавить миграцию папок.У меня есть такая структура:

project/
  tsconfig.json
  tsconfig.build.json
  ormconfig.js
  migrations/
    **.file.ts
  src/
    app.module.ts
    main.ts
    common/
    modules/

Мне нужно построить:

dist
  migrations/
  common/
  modules/
  app.module.d.ts
  app/module.js
  main.d.ts
  main.js

Но у меня есть:

dist
  migrstions/
  src/
  tsconfig.build.tsbuildinfo

Мой файл 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"]
}

Мой 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',
};

Попробуйте добавить путь в tsconfig: (по решению Как настроить tsconfig.json для вывода файлов из нескольких исходных папок в один плоский outDir? ), но у меня это не работает.

"compilerOptions": {
   ...
   "rootDir": "./src",
   "paths": {
      "@app/migrations": ["./migrations"]
    }
   ...
}

Можно ли настроить tsconfig для такой структуры, или единственное решение - перенести папку миграции в src?

...