TypeORM CLI无法识别导入别名致迁移报错,求解决方案
TypeORM CLI 无法识别导入别名的解决方案
方法1:用 tsconfig-paths 让 ts-node 识别路径映射
- 确认你的
tsconfig.json已配置路径别名:
{ "compilerOptions": { "baseUrl": "./src", "paths": { "~/*": ["*"] } } }
- 安装依赖:
npm install tsconfig-paths --save-dev
- 修改TypeORM命令,添加路径映射加载参数。可以把package.json里的脚本改成:
{ "scripts": { "typeorm:run": "typeorm-ts-node-commonjs -r tsconfig-paths/register migration:run -d src/data-source.ts" } }
或者直接在命令行执行:
typeorm-ts-node-commonjs -r tsconfig-paths/register migration:run -d src/data-source.ts
方法2:用 module-alias 注册别名
- 安装依赖:
npm install module-alias --save
- 在TypeORM的DataSource配置文件(比如
src/data-source.ts)顶部添加代码:
import 'module-alias/register'; import { addAlias } from 'module-alias'; // 根据项目结构调整路径,这里假设src是代码根目录 addAlias('~', __dirname);
- 在package.json里添加别名映射:
{ "_moduleAliases": { "~": "src" } }
方法3:临时替换别名(应急方案)
如果不想安装额外依赖,可临时将代码中的别名替换为相对路径,比如把import { Gender, ProductStatus } from '~/common/enums';改成import { Gender, ProductStatus } from '../common/enums';,执行完迁移后再改回别名。此方法较为繁琐,仅适合临时应急。
内容的提问来源于stack exchange,提问作者Yaroslav Buhaievskyi
相关产品推荐
相关产品推荐

