typeORM migration:generate 无法识别导入 baseurl

typeORM migration:generate not recognise import baseurl

我正在将 typeORM 与 nestjs 和 typescript 一起使用。我有 nestjs,所以所有导入语句都可以以 'src/...' 开头 typeorm 将只接受使用 ../

对其他实体的导入

找不到引用的实体

import { User } from 'src/users/entities/user.entity';

查找引用实体的结构:

import { User } from '../users/entities/user.entity';

我正在使用来自 package.json

的脚本
"migration:generate": "ts-node node_modules/.bin/typeorm migration:generate -n"

ormconfig.json

[
 {
  "name": "default",
  "type": "postgres",
  "host": "localhost",
  "port": 5432,
  "username": "xxxx",
  "password": "xxx",
  "database": "xxxx",
  "schema": "xxx",
  "migrations": ["dist/migrations/*{.ts,.js}"],
  "migrationsTableName": "migrations_typeorm"
 }
]

tsconfig.json

{
 "compilerOptions": {
   "module": "commonjs",
   "declaration": true,
   "removeComments": true,
   "emitDecoratorMetadata": true,
   "experimentalDecorators": true,
   "allowSyntheticDefaultImports": true,
   "target": "es2017",
   "sourceMap": true,
   "outDir": "./dist",
   "baseUrl": "./",
   "incremental": true
  }
 }

巢-cli.json

{
 "collection": "@nestjs/schematics",
 "sourceRoot": "src"
}

我已经尝试了 的建议,但它没有解决我的问题。 当包含其他实体时,如何让 orm 迁移在导入语句中接受以 src/ 开头的路径?

非常感谢

遇到这个问题2天了。我一直在摸不着头脑,为什么 typeorm cli 不遵守我 tsconfig.json 中的 'baseUrl' 设置。我想我找到了解决方案。因此,如果您查看 package.json 中的另一个脚本:

"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand"

有一个名为 tsconfig-paths/register 的模块。我搜索了一下,宾果游戏!它确实有助于解析导入路径,同时尊重 tsconfig.json 中的 'baseUrl'。所以我在 package.json 中修改了我的 typeorm 脚本,如下所示:

"typeorm": "node -r tsconfig-paths/register -r ts-node/register ./node_modules/typeorm/cli.js"

然后它就像一个魅力。谢谢