# @dunx/transform 中文文档

规范地址：https://npmcn.com/package/%40dunx/transform/

版本：3\.10\.6
npm 元数据更新时间：2026-10-30T04:59:22.247Z
中文译文更新时间：2026-11-13T00:28:21.832Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dunx/transform
原文对照：https://npmcn.com/package/%40dunx/transform/?lang=original
项目主页：https://github.com/petarzarkov/dunx/tree/main/packages/transform#readme
源码仓库：https://github.com/petarzarkov/dunx

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：28.2 kB，15 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：@types/bun \>=1\.4\.3，typescript \>=5\.0\.0
- 首次发布：2026-08-02T08:01:29.711Z
- 最新版本发布：2026-10-30T04:59:21.893Z
- 近 30 天下载量：3230（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：83（近 12 个月 83 个）

## 中文简介

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

## 安装

```sh
npm install @dunx/transform
```

也可以使用：`pnpm add @dunx/transform`、`yarn add @dunx/transform`、`bun add @dunx/transform`

## README

# @ dunx/ 变形

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

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

没有 `@Injectable`,没有 `@Inject`,没有 `reflect-metadata`,没有 `experimentalDecorators`。 。 。 . 这个 [供应商指南](https://npmcn.com/package/docs/guide/03-providers.md) 简直太夸张了.

## 安装

```bash
bun add @dunx/transform
```

## 设置

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

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

或者根本没有配置文件 :

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

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

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

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

## 发布软件包

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

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

await buildPackage();
```

它假设来源于 `src/`,输出到 `dist/`一个 `tsconfig.json` 时间 软件包根。 声明来自 `typescript`一个可选的对等点,因为 邦没有。 整个行走在 [出版指南](https://npmcn.com/package/docs/guide/30-publishing-a-package.md)。 。 。 .

## 它会做什么

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

```ts
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 是什么？

记录 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 和提交记录判断。

