# @angular-architects/ddd 中文文档

规范地址：https://npmcn.com/package/%40angular-architects/ddd/

版本：22\.0\.0
npm 元数据更新时间：2026-06-07T19:24:14.554Z
中文译文更新时间：2026-11-06T04:12:29.964Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40angular-architects/ddd
原文对照：https://npmcn.com/package/%40angular-architects/ddd/?lang=original
项目主页：https://github.com/angular-architects/nx-ddd-plugin#readme
源码仓库：https://github.com/angular-architects/nx-ddd-plugin

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

- 包体积（解压后）：129 kB，138 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.19\.0
- 运行依赖：1 个
- peer 依赖：@angular/core ^22\.0\.0，@nx/angular \>=21\.7\.0 \<24\.0\.0
- 首次发布：2020-03-08T14:28:45.807Z
- 最新版本发布：2026-06-07T19:24:14.355Z
- 近 30 天下载量：12396（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：54（近 12 个月 2 个）

## 中文简介

用域驱动设计构建单列波的 Nx 插件

## 安装

```sh
npm install @angular-architects/ddd
```

也可以使用：`pnpm add @angular-architects/ddd`、`yarn add @angular-architects/ddd`、`bun add @angular-architects/ddd`

## README

# 角 Nx 单相机的 DDD 插件

## 版本数

软件包版本与 _角质_ 版本.

-   页:1 **Nx < v19 数据** 财务报告和审定财务报表 **NG v17 (英语)** 使用情况 _页:1_。 。 。 .
-   页:1 **Nx < v20 数据** 财务报告和审定财务报表 **NG v18 (英语)** 使用情况 _页:1_。 。 。 .
-   页:1 **Nx >= v20** 财务报告和审定财务报表 **NG v18 (英语)** 使用情况 _页:1_。 。 。 .
-   页:1 **Nx >= v20** 财务报告和审定财务报表 **NG v19 (英语)** 使用情况 _页:1_。 。 。 .
-   页:1 **Nx >= v21.2** 财务报告和审定财务报表 **NG v20 (英语)** 使用情况 _页:1_。 。 。 .
-   页:1 **Nx >= v21.2** (Nx v21-22)和 (中文(简体) ) **NG v21 (英语)** 使用情况 _页:1_。 。 。 .
-   页:1 **国 务 院** (Nx v21-23)和 (中文(简体) ) **NG v22 (英语)** 使用情况 _页:1_。 。 。 .

**打破变革** 在v18.1.0中:

地名名称 **无** `includePaths` 已更改为只使用“ /” .

直至 _页:1_,生成 `includePaths` 像这样,这是违法的 **无**数字 :

```json
  "@org/booking/domain": ["libs/booking/domain/src/index.ts"],
  "@org/booking/feature-test": ["libs/booking/feature-test/src/index.ts"]
```

从开始 _页:1_,生成 `includePaths` 正在使用破折号代替 :

```json
  "@org/booking-domain": ["libs/booking/domain/src/index.ts"],
  "@org/booking-feature-test": ["libs/booking/feature-test/src/index.ts"]
```

## 关于

这个插件安装了一些图案,根据Nrwl的最佳做法和我们对\[客户端 DDD with Angular\] (-)的想法,将您的 Nx 工作空间自动切入域和地层 [博客:所有关于角和前端架构的 DDD](https://www.angulararchitects.io/blog/all-about-ddd-for-frontend-architectures-with-angular-co/):

![domains and layers](https://github.com/angular-architects/nx-ddd-plugin/blob/master/libs/ddd/assets/ddd.png?raw=true)

生成的访问限制防止了尊重层和域的图书馆之间不想要的访问:

![access restrictions](https://github.com/angular-architects/nx-ddd-plugin/blob/master/libs/ddd/assets/linting-2.png?raw=true)

## 特征

-   QQ 创建域库,包括外观、模型和数据服务
-   QQ 生成特性库, 包括使用外观的特性组件
-   \* 增加Nrwl提议的域间访问限制的林入规则
-   根据 Nrwl(支持tslint 和 eslint) 的建议, 添加层间访问限制的内嵌规则
-   QQ 可选生成 NGRX 的骨架并整合到 DDD 设计中(`--ngrx` 开关,需要@ngrx/chematics)
-   支持独立的组件

### 特性概览视频

[![Screenshot of Overview Video](https://i.imgur.com/VlTRE80.png)](https://www.youtube.com/watch?v=39JLXMEE7Ds)

## 使用量

将此插件添加到 Nx 工作空间 :

```
npm i @angular-architects/ddd
nx g @angular-architects/ddd:init
```

相反,您也可以使用ng加法,然而,Nx目前使用ng加法时发出警告:

```
nx add @angular-architects/ddd
```

手动添加域和特性 :

```
nx g @angular-architects/ddd:domain booking --addApp
nx g @angular-architects/ddd:domain boarding --addApp
nx g @angular-architects/ddd:feature search --domain booking --entity flight
nx g @angular-architects/ddd:feature cancel --domain booking
nx g @angular-architects/ddd:feature manage --domain boarding
```

对于 NGRX 支持,只需添加 `--ngrx` 切换 :

```
nx g @angular-architects/ddd:domain luggage --addApp --ngrx
nx g @angular-architects/ddd:feature checkin --domain luggage --entity luggage-list --ngrx
[...]
```

这个例子假设您有应用程序 `flight-app` 已经就位.

这些图案还连接了个人的解放。 要看到结果,请创建依赖图:

```
npm run dep-graph
```

![dependency graph](https://github.com/angular-architects/nx-ddd-plugin/blob/master/libs/ddd/assets/ddd.png?raw=true)

要看到骨架工作端到端,请在您中调用生成的特性组件 `app.component.html`数字 :

```html
<booking-search></booking-search>
```

您不需要任何 TypeScript 或 Angular 导入 。 插件已经处理好了 。 运行这个例子后,你应该看到这样的东西:

![Result proving that the generated skeleton works end-to-end](https://github.com/angular-architects/nx-ddd-plugin/blob/master/libs/ddd/assets/result.png?raw=true)

## 独立组件

所有发电机都有开关 `--standalone` 支持独立组件:

```
nx g @angular-architects/ddd:domain booking --addApp --standalone

nx g @angular-architects/ddd:feature search --domain booking --entity flight --standalone
```

别把独立组件和传统组件混为一谈.

**自第19版以来**独立 **默认为真**。 。 。 .

## 生成结构

包含的图表为每个域生成一个文件夹. 此文件夹包含特性 lib 以及具有域逻辑的库 :

![Folder per Domain](https://github.com/angular-architects/nx-ddd-plugin/blob/master/libs/ddd/assets/ddd-libs.png?raw=true)

域层再细分为三部分:

![Structured Domain Layer](https://github.com/angular-architects/nx-ddd-plugin/blob/master/libs/ddd/assets/domain-layer.png?raw=true)

### 为域库创建的结构

-   **应用程序 :** 包含应用程序服务。 这是一个DDD术语 对于我们所谓的外观 在现在的Angular。 他们把所有东西都用于给定的用途,这样一个特性组件就只需要与这样一个外表通信. 此外,它还为国家管理隐瞒了细节。 当生成的外观只是使用 `BehaviorSubject`,可以在下面添加像NGRX这样的图书馆。 由于这样的修改从组件的角度来看没有任何改变,因此可以使用外观来在需求后引入NGRX.
-   **实体:** 客户端数据模型包括在其上操作的逻辑(类似验证).
-   **基础设施:** 与后端通信的服务.

## 考虑自动检查访问限制

由于与 Nx 定义的访问限制使用 Linting , 您也可以在命令行中检查它们 。 因此,你可能会考虑把这个 纳入你的自动建设过程.

![Access restrictions via linting](https://github.com/angular-architects/nx-ddd-plugin/blob/master/libs/ddd/assets/linting-3.png?raw=true)

## 演示应用

见 [https://github.com/angular-architects/ddd-demo (中文(简体) )](https://github.com/angular-architects/ddd-demo)

## 资源

-   [博客:所有关于角和前端架构的 DDD](https://www.angulararchitects.io/blog/all-about-ddd-for-frontend-architectures-with-angular-co/)
-   [无](https://nx.dev/web)
-   [Nrwl的eBook 关于单体和最佳做法](https://go.nrwl.io/angular-enterprise-monorepo-patterns-new-book)
-   [关于此架构的会话记录](https://www.youtube.com/watch?v=94HFD391zkE&t=1s)
-   [关于带有角的 DDD 的文章系列](https://www.softwarearchitekt.at/aktuelles/sustainable-angular-architectures-1/)
-   [我们的EBook关于企业角](https://www.angulararchitects.io/en/ebooks/micro-frontends-and-moduliths-with-angular/)

## 更多架构

-   [企业结构讲习班](https://www.angulararchitects.io/en/training/advanced-angular-architecture-workshop/)
-   [角建筑师博客](https://www.angulararchitects.io/en/blog/)

## 联系作者

-   [曼弗雷德斯泰尔在X](https://x.com/ManfredSteyer), (中文(简体) ), [LQT在X时](https://x.com/LX_T)

## 常见问题

### @angular-architects/ddd 是什么？

用域驱动设计构建单列波的 Nx 插件

### 如何安装 @angular-architects/ddd？

在项目目录运行 npm install @angular-architects/ddd，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@angular/core（^22\.0\.0）、@nx/angular（\>=21\.7\.0 \<24\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @angular-architects/ddd 支持 TypeScript 吗？

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

### @angular-architects/ddd 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @angular-architects/ddd 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20\.19\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @angular-architects/ddd 可以商用吗？

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

### @angular-architects/ddd 的下载量有多少？

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

### @angular-architects/ddd 还在维护吗？

最新版本 22\.0\.0 发布于 2026/06/08（5 个月前）；至今共发布 54 个版本，其中过去 12 个月发布了 2 个；首次发布于 2020/03/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

