首页 > 解决方案 > 如何配置 TypeORM ormconfig.json 文件以解析 js dist 文件夹或 ts src 文件夹中的实体?

问题描述

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

"entities": ["src/entities/**/*.ts"]

这在我使用 ts-node 时效果很好。ts-node src/main.ts

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

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

"entities": ["dist/entities/**/*.js"]

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

如何配置为ormconfig.json能够同时使用(node文件dist夹和文件夹)?ts-nodesrc

标签: node.jstypeorm

解决方案


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

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

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

module.exports = process.env.TS_NODE ? srcConfig : distConfig;

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


推荐阅读