# @bpmn-io/lezer-feel 中文文档

规范地址：https://npmcn.com/package/%40bpmn-io/lezer-feel/

版本：3\.0\.1
npm 元数据更新时间：2026-07-08T15:54:13.384Z
中文译文更新时间：2026-11-08T13:05:54.329Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：129 kB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>= 20\.12\.0
- 运行依赖：3 个
- 首次发布：2025-08-21T14:10:39.132Z
- 最新版本发布：2026-06-05T15:27:37.316Z
- 近 30 天下载量：628603（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 10 个）

## 中文简介

基于 Lezer 的感觉语法

## 安装

```sh
npm install @bpmn-io/lezer-feel
```

也可以使用：`pnpm add @bpmn-io/lezer-feel`、`yarn add @bpmn-io/lezer-feel`、`bun add @bpmn-io/lezer-feel`

## README

# @bpmn-io/lezer-feel (英语)

[![CI](https://github.com/bpmn-io/lezer-feel/actions/workflows/CI.yml/badge.svg)](https://github.com/bpmn-io/lezer-feel/actions/workflows/CI.yml)

> \[注\] 这是叉子 [长发](https://github.com/nikku/lezer-feel)

这是一个 [丹麦](https://www.omg.org/spec/DMN/) 感觉语法 [勒泽](https://lezer.codemirror.net/) 解析器系统.

## 使用量

解析为 a [`Tree`](https://lezer.codemirror.net/docs/ref/#common.Tree)数字 :

```javascript
import {
  parser
} from '@bpmn-io/lezer-feel';

// parse <Expression>
parser.parse('foo > 1');
```

#### 选择对话框

使用 `Expression` 或者说 `UnaryTests` 作为 [顶端节点](https://lezer.codemirror.net/docs/ref/#lr.LRParser.topNode) 取决于您打算分析哪种感觉方言:

```javascript
import {
  parser
} from '@bpmn-io/lezer-feel';

const unaryParser = parser.configure({
  top: 'UnaryTests'
})

// parse <UnaryTests>
unaryParser.parse('> 100');
```

#### 提供上下文

覆盖默认值 [上下文跟踪器](https://lezer.codemirror.net/docs/ref/#lr.ParserConfig.contextTracker) 以输入进行上下文敏感解析:

```javascript
import {
  parser,
  trackVariables
} from '@bpmn-io/lezer-feel';

const contextTracker = trackVariables({
  'if foo then bar': 1
});

const contextualParser = parser.configure({
  contextTracker
});

// recognizes <if foo then bar> as a <VariableName>
contextualParser.parse('if foo then bar');
```

## 发展

```shell
# build and test
npm run all

# test
npm test

# test (debug)
LOG=fparse:dbg,fparse,context,parse npm test
```

前缀 [个人](https://npmcn.com/package/%40bpmn-io/lezer-feel/test/expressions.txt) [测试](https://npmcn.com/package/%40bpmn-io/lezer-feel/test/unary-tests.txt) 带有 `*` 以焦点模式测试它们 :

```markdown
# *ArithmeticExpression (error)

...
```

## 相关

-   [感觉](https://github.com/bpmn-io/feelin) - 感觉语言的口译员
-   [场景](https://github.com/nikku/feel-playground) - 学习感觉语言的视觉游乐场
-   [长发](https://github.com/nikku/lang-feel) - 融入一个 [代码](https://codemirror.net/) 编辑器

## 许可证

该代码根据麻省理工学院的许可颁发.

## 常见问题

### @bpmn-io/lezer-feel 是什么？

基于 Lezer 的感觉语法

### 如何安装 @bpmn-io/lezer-feel？

在项目目录运行 npm install @bpmn-io/lezer-feel，或使用 pnpm add / yarn add / bun add。

### @bpmn-io/lezer-feel 支持 TypeScript 吗？

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

### @bpmn-io/lezer-feel 支持 ESM 还是 CommonJS？

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

### @bpmn-io/lezer-feel 需要什么版本的 Node\.js？

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

### @bpmn-io/lezer-feel 可以商用吗？

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

### @bpmn-io/lezer-feel 的下载量有多少？

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

### @bpmn-io/lezer-feel 还在维护吗？

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

