@dunx/transform

中文文档
3.10.6发布于 2026/10/30MITTypeScriptES Module构建来源已验证近 30 天下载 3230

记录 Dunx 容器构造者依赖性的负载时间转换

中文使用文档
文档目录6 节
  1. 安装
  2. 设置
  3. 发布软件包
  4. 它会做什么
  5. 参数它不会猜测
  6. 如果你忘了登记

@ dunx/ 变形

使 Dunx 容器使用构造器注入的负载时间转换.

export class UsersService {
  constructor(private readonly repo: UsersRepository) {}
}

没有 @Injectable,没有 @Inject,没有 reflect-metadata,没有 experimentalDecorators。 。 。 . 这个 供应商指南 简直太夸张了.

安装

bun add @dunx/transform

设置

# bunfig.toml
preload = ["@dunx/transform/preload"]

[test]
preload = ["@dunx/transform/preload"]

或者根本没有配置文件 :

bun --preload @dunx/transform/preload src/main.ts

对于生产建筑,请将插件传递到 Bun.build数字 :

import { depsPlugin } from '@dunx/transform';

await Bun.build({ entrypoints: ['src/main.ts'], plugins: [depsPlugin] });

发布软件包

预装跳过 node_modules,所以npm上的软件包必须携带自己的 记录或任何东西都无法输入其类. @dunx/transform/build 这样做 构建,读取您 exports 财务报告和审定财务报表 bin数字 :

// build.ts
import { buildPackage } from '@dunx/transform/build';

await buildPackage();

它假设来源于 src/,输出到 dist/一个 tsconfig.json 时间 软件包根。 声明来自 typescript一个可选的对等点,因为 邦没有。 整个行走在 出版指南。 。 。 .

它会做什么

它分析每个文件 oxc-parser 阅读每个班级的申报 构造参数类型 。 然后每类附加一个声明:

Object.defineProperty(UsersService, Symbol.for('dunx.deps'), {
  value: () => [UsersRepository],
});

@dunx/core 阅读该记录并解决这些论点,然后呼吁 new。 。 。 .

记录是 th克,返回参数类型的函数。 这个 容器在解决类时使用,而不是在文件加载时使用。 这么说 在文件后面声明或通过循环导入达到的依赖性需求 没有 forwardRef。 。 。 .

仅添加所附说明。 原始来源的其他字节是 保留,因此注释、格式化和堆栈痕迹中的行号是 不变.

参数它不会猜测

运行时不存在的类型名称被记录为 unresolved,连同其原始源文本。 容器就抛出 启动时 :

UsersService cannot be constructed: parameter 2 (private readonly cfg: AppConfig)
names nothing that exists at runtime, so there is no token to resolve. Replace
the type with an abstract class, or bind it with token() and read it with
inject(TOKEN) in a field initializer.

此错误涵盖只输入类型, 内含 type 指定者, 一个本地 interface 或类型别名,类类型参数,原始和结合. 对a 键入,错误指示您使用一个数值导入。 剩下的时间, 使用抽象类或 token()。一个符号没有类型可以设置一个参数, 所以读它与 inject(TOKEN) 在现场初始化.

类 表达式 已跳过 : const X = class Inner {} 绑定 Inner 仅限 在类体内部,所以附加的语句不能引用名称.

如果你忘了登记

集装箱检查 ctor.length 以有记录的依附者为准 插件从未见过是启动错误而不是一组错误 undefined 字段 :

UsersController declares 1 constructor parameter(s) but no dependencies were
recorded for it, so @dunx/transform did not transform UsersController.

版本与发布记录

@dunx/transform 共发布 83 个版本,首次发布于 2026/08/02;过去 12 个月发布了 83 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.10.6latest2026/10/3014 天前
3.10.52026/10/2222 天前
3.10.42026/10/2024 天前
3.10.32026/10/1430 天前
3.10.22026/10/081 个月前
3.10.12026/09/261 个月前

关于 @dunx/transform 的常见问题

@dunx/transform 是什么?

记录 Dunx 容器构造者依赖性的负载时间转换

如何安装 @dunx/transform?

在项目目录运行 npm install @dunx/transform,或使用 pnpm add / yarn add / bun add。

@dunx/transform 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dunx/transform 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dunx/transform 可以商用吗?

@dunx/transform 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dunx/transform 的下载量有多少?

根据 npm 官方下载统计,@dunx/transform 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,230 次,日均约 108 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dunx/transform 还在维护吗?

最新版本 3.10.6 发布于 2026/10/30(14 天前);至今共发布 83 个版本,其中过去 12 个月发布了 83 个;首次发布于 2026/08/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。