# @emaarco/dmn-js-simulation 中文文档

规范地址：https://npmcn.com/package/%40emaarco/dmn-js-simulation/

版本：0\.4\.1
npm 元数据更新时间：2026-11-11T19:51:48.438Z
中文译文更新时间：2026-11-13T14:25:42.541Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40emaarco/dmn-js-simulation
原文对照：https://npmcn.com/package/%40emaarco/dmn-js-simulation/?lang=original
项目主页：https://github.com/emaarco/dmn-js-simulation#readme
源码仓库：https://github.com/emaarco/dmn-js-simulation

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

- 包体积（解压后）：3.5 MB，71 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：dmn-js ^18\.0\.2，inferno \>=5\.6 \<6，diagram-js \>=15
- 首次发布：2026-08-03T12:12:19.840Z
- 最新版本发布：2026-11-11T19:51:48.027Z
- 近 30 天下载量：11676（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 8 个）

## 中文简介

在 dmn-js 模型中直接模拟 DMN 决策表——看哪个规则匹配,决定返回什么.

## 安装

```sh
npm install @emaarco/dmn-js-simulation
```

也可以使用：`pnpm add @emaarco/dmn-js-simulation`、`yarn add @emaarco/dmn-js-simulation`、`bun add @emaarco/dmn-js-simulation`

## README

# @emaarco/dmn-js-模拟

[![npm version](https://img.shields.io/npm/v/@emaarco/dmn-js-simulation)](https://www.npmjs.com/package/@emaarco/dmn-js-simulation) [![license](https://img.shields.io/npm/l/@emaarco/dmn-js-simulation)](https://github.com/emaarco/dmn-js-simulation/blob/main/LICENSE) [![live demo](https://img.shields.io/badge/live%20demo-GitHub%20Pages-blue)](https://emaarco.github.io/dmn-js-simulation/)

> 直接在 a 中模拟 DMN 决定表 [日记](https://github.com/bpmn-io/dmn-js) 建模者——以具体输入来输入,并立即看到哪些规则是匹配的,哪些不匹配,以及决定的回报.

![Drilling from the DRD into the Recommend Bike table, entering Road and 2500, then simulating highlights rule 3 and shows Model = Road Pro](https://raw.githubusercontent.com/emaarco/dmn-js-simulation/main/docs/screenshots/simulation.gif)

## 这个项目背后的想法

`@emaarco/dmn-js-simulation` 对DMN来说 [`bpmn-js-token-simulation`](https://github.com/bpmn-io/bpmn-js-token-simulation) 给 BPMN : 它允许您验证决定逻辑 **在你做模特的时候**,而不是在后来的流程代码,测试,或生产中发现错误. 它支持 **所有 DMN 点击策略** (单位:千美元)`UNIQUE`, (中文(简体) ), `FIRST`, (中文(简体) ), `ANY`, (中文(简体) ), `PRIORITY`, (中文(简体) ), `COLLECT` 与 `SUM`编号 :`MIN`编号 :`MAX`编号 :`COUNT`, (中文(简体) ), `RULE ORDER`, (中文(简体) ), `OUTPUT ORDER`和 **多决定 DRD 链式**。 。 。 .

## 特征

-   **决策表模拟** ——表上显示一个输入表;运行后突出对应的规则并读出结果. 规则因打击政策而放弃(例如: `FIRST`编号 :`PRIORITY`)显示为阴暗 _候选人_,因此政策的效果是显而易见的.
-   **所有打击政策**,包括: `COLLECT` 汇总和违反政策警告(例如:. `UNIQUE` 页:1.
-   **DRD 链式** ——模拟整个决定要求图:设定一次输入数据离开,每个决定按依赖顺序评价. 取消的决定突出并附有说明,说明其结果;进入一项决定反映了跑道的亮点.
-   **下潜** - 安装像任何 dmn-js 模块通过 `additionalModules`· ; `dmn-js` 是一个对等依赖,所以它驱动您已经使用的模型.
-   **可主题** ——所有UI都是类命名空间并被CSS变量所驱动,您可以覆盖.

## 安装

```bash
npm install @emaarco/dmn-js-simulation
```

`dmn-js` (qq 17)是一个同伴依赖——如果你还没有安装的话.

## 使用量

```ts
import DmnModeler from 'dmn-js/lib/Modeler'
import DmnSimulationModule from '@emaarco/dmn-js-simulation'
import '@emaarco/dmn-js-simulation/assets/dmn-js-simulation.css'

const modeler = new DmnModeler({
  container: '#canvas',
  decisionTable: { additionalModules: [DmnSimulationModule.decisionTable] },
  drd: { additionalModules: [DmnSimulationModule.decisionRequirementsDiagram] },
})

await modeler.importXML(dmnXml)
```

只登记您需要的视图 。 这些模块还分别导出:

```ts
import { DmnSimulationTableModule, DmnSimulationDecisionRequirementsDiagramModule } from '@emaarco/dmn-js-simulation'
```

> **DRD 视图 :** 确保您的应用程序导入 dmn-js 图标字体 (单位:千美元)`dmn-js/dist/assets/dmn-font/css/dmn-embedded.css`与它的其他 样式表 — 否则 DRD 编辑器调色板图标会变为空白 .

### 没有模特儿评价

无框架评价核心也被导出,用于测试或无头用途:

```ts
import { DmnXmlReader, DecisionTableEvaluator } from '@emaarco/dmn-js-simulation'

const model = new DmnXmlReader().readDecisionTable(dmnXml)
const result = new DecisionTableEvaluator(model).evaluate(['Fall', 8])
// → { matchedRuleIndices, reportedRuleIndices, outputs, aggregation?, violation? }
```

`new DmnModdleReader().readDecisionRequirementsDiagram(definitions)` + 键 `new DecisionRequirementsDiagramEvaluator(model).evaluate(inputValues)` 对一整张DRD图也一样.

## 捐款

欢迎捐款——见 [捐款额](https://github.com/emaarco/dmn-js-simulation/blob/main/CONTRIBUTING.md) 用于单列波布局,脚本,以及如何在当地构建,测试和运行示例.

## 贷项

-   [日记](https://github.com/bpmn-io/dmn-js) 以 [页:1](https://bpmn.io/) ——DMN建模器 此添加插件.
-   灵感来自 [bpmn-js-token 模拟](https://github.com/bpmn-io/bpmn-js-token-simulation)BPMN 符号模拟器 [页:1](https://bpmn.io/)。 。 。 .

## 许可证

[麻省理工学院](https://github.com/emaarco/dmn-js-simulation/blob/main/LICENSE) 马可·沙克

## 常见问题

### @emaarco/dmn-js-simulation 是什么？

在 dmn-js 模型中直接模拟 DMN 决策表——看哪个规则匹配,决定返回什么\.

### 如何安装 @emaarco/dmn-js-simulation？

在项目目录运行 npm install @emaarco/dmn-js-simulation，或使用 pnpm add / yarn add / bun add。

### @emaarco/dmn-js-simulation 支持 TypeScript 吗？

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

### @emaarco/dmn-js-simulation 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @emaarco/dmn-js-simulation 可以商用吗？

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

### @emaarco/dmn-js-simulation 的下载量有多少？

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

### @emaarco/dmn-js-simulation 还在维护吗？

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

