如何配置 TypeORM ormconfig.json 文件来解析 js dist 文件夹或 ts src 文件夹中的实体?

Dan*_*tos 7 node.js typeorm

我将 TypeORM 配置实体路径设置为:

"entities": ["src/entities/**/*.ts"]
Run Code Online (Sandbox Code Playgroud)

当我使用 ts-node 时,这很有效。 ts-node src/main.ts

使用编译打字稿后tsc,我得到了一个dist包含已编译应用程序的文件夹:

但是,typeORM 仍然尝试从src文件夹而不是dist. 在解析 TS 文件而不是 JS 时抛出很多意外的语法错误。所以我将空闲字符串更改为实体配置:

"entities": ["dist/entities/**/*.js"]
Run Code Online (Sandbox Code Playgroud)

它适用于节点,node dist/main.js但不适用于ts-node src/main.ts

如何配置ormconfig.json才能够与工作两者(nodedist文件夹,ts-nodesrc文件夹中)?

loc*_*ock 14

我建议使用 anormconfig.js而不是 JSON 版本并使用环境变量或类似的来在两个配置之间切换。例如; 类似于以下精简示例。

const srcConfig = {
  "entities": [
    "src/entities/**/*.ts"
  ],
}

const distConfig = {
  "entities": [
    "dist/entities/**/*.js"
  ],
}

module.exports = process.env.TS_NODE ? srcConfig : distConfig;
Run Code Online (Sandbox Code Playgroud)

请注意,您需要在TS_NODE某处设置env var;我确实注意到有一个尚未合并的 PR可以做到这一点。