You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Yarn Berry与TS路径别名时,如何给typeorm-ts-node-commonjs传递tsconfig-paths/register

使用typeorm-ts-node-commonjs时传递tsconfig-paths/register给ts-node的方法

下面是几种可行的解决方案:

方法1:通过环境变量TS_NODE_OPTIONS传递参数

typeorm-ts-node-commonjs底层基于ts-node运行,所以可以用TS_NODE_OPTIONS环境变量给ts-node注入注册模块:

TS_NODE_OPTIONS="-r tsconfig-paths/register" yarn typeorm-ts-node-commonjs <你的TypeORM命令,比如migrate:run>

如果需要指定数据源文件,加上-d参数即可:

TS_NODE_OPTIONS="-r tsconfig-paths/register" yarn typeorm-ts-node-commonjs -d ./src/data-source.ts migrate:run

方法2:手动调用ts-node执行TypeORM CLI

直接绕开预构建命令,手动用ts-node加载tsconfig-paths/register并执行TypeORM的CLI入口文件:

ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -d ./src/data-source.ts <你的命令>

方法3:在package.json中配置脚本(推荐)

把命令封装到package.json的scripts里,避免每次输入长命令:

{
  "scripts": {
    "typeorm": "TS_NODE_OPTIONS=\"-r tsconfig-paths/register\" typeorm-ts-node-commonjs -d ./src/data-source.ts"
  }
}

之后直接通过以下方式执行TypeORM命令:

yarn typeorm migrate:run
# 或者其他命令,比如
yarn typeorm schema:drop

为什么之前的尝试失败?

  • yarn typeorm-ts-node-commonjs -r tsconfig-paths/register无效:因为-r是ts-node的参数,不是typeorm-ts-node-commonjs这个预构建命令的参数,该命令只接受TypeORM CLI的参数。
  • ts-node -r tsconfig-paths/register typeorm-ts-node-commonjs无效:因为typeorm-ts-node-commonjs是一个npm脚本,不是可直接被ts-node执行的文件,必须指向TypeORM的CLI入口文件。

内容的提问来源于stack exchange,提问作者coler-j

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:07:39