@actions/expressions

中文文档
0.3.61发布于 2026/08/05MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 216.3万

@actions/expressions 是用于分析和评价 GitHub 动作的库 表达式。 。 。 .

中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 简单示例
  4. 有上下文数据
  5. 捐款
  6. 构建
  7. 测试
  8. 林特
  9. 许可证

动作/表达式

@actions/expressions 是用于分析和评价 GitHub 动作的库 表达式。 。 。 .

安装

这个 软件包 包含TypeScript类型并编译了ECMAScript模块.

npm install @actions/expressions

使用量

简单示例

import { Parser, Lexer, Evaluator, data } from '@actions/expressions';

const lexer = new Lexer("1 == 2");
const lr = lexer.lex();

const parser = new Parser(lr.tokens, [], []);
const expr = parser.parse();

const evaluator = new Evaluator(expr, new data.Dictionary());
const result = evaluator.evaluate();

console.log(result.coerceString()) // false

有上下文数据

import { Parser, Lexer, Evaluator, data } from '@actions/expressions';

const lexer = new Lexer("'monalisa' == context.name");
const lr = lexer.lex();

const parser = new Parser(lr.tokens, ["context"], []);
const expr = parser.parse();

const evaluator = new Evaluator(expr, new data.Dictionary([{
  key: "context"
  value: new data.Dictionary([{
    key: "name"
    value: new data.StringData("monalisa")
  }])
}]));
const result = evaluator.evaluate();

console.log(result.coerceString()) // true

捐款

见 捐款额 作为一般准则和建议存放处的基础.

这个项目只是GitHub动作表达语言的多处执行之一. 因此,我们不能接受增加新语言特征或显著改变现有语言特征行为的贡献. 请使用我们的语言 社区论坛。 。 。 .

如果你想捐款,请跑 更美丽 用于格式化您的代码,并在提交您的PR前酌情添加单位测试. ./测试数据 包含所有执行都应通过的测试案例,也请确保这些测试仍然通过.

构建

npm run build

或监视更改

npm run watch

测试

npm test

或监视更改和运行测试:

npm run test-watch

林特

npm run format-check

许可证

这个项目根据麻省理工学院开源许可证的规定获得许可. 请参考 麻省理工学院 全部条件.

版本与发布记录

@actions/expressions 共发布 63 个版本,首次发布于 2023/03/24;过去 12 个月发布了 42 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.61latest2026/08/053 个月前
0.3.602026/07/153 个月前
0.3.592026/07/143 个月前
0.3.582026/06/124 个月前
0.3.572026/05/125 个月前
0.3.562026/05/086 个月前

关于 @actions/expressions 的常见问题

@actions/expressions 是什么?

@actions/expressions 是用于分析和评价 GitHub 动作的库 表达式。 。 。 .

如何安装 @actions/expressions?

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

@actions/expressions 支持 TypeScript 吗?

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

@actions/expressions 支持 ESM 还是 CommonJS?

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

@actions/expressions 需要什么版本的 Node.js?

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

@actions/expressions 可以商用吗?

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

@actions/expressions 的下载量有多少?

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

@actions/expressions 还在维护吗?

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