@effectful/es

中文文档
2.0.13发布于 2026/05/24MITCommonJS近 30 天下载 6507

使用 @ effectful/ core( 抽象界面) 的标准 JavaScript 效果

中文使用文档
文档目录8 节
  1. 为什么
  2. 使用量
  3. 抽象界面
  4. 零配置转换
  5. 明确的具体执行
  6. 隐性平行主义
  7. 取消
  8. 自由主义

@ 无效/ es

基于 ECMAScript ASync 、 生成器和 aync 生成器函数语法超载.

该项目是一个用于整合新自定义计算效果的 Bail 插件 输入 Java 脚本.

默认情况下, 这是 EMAScript ASync 的又一执行 和同源函数,但也可以被扩展.

这个项目是 效果 JS 工具链.

为什么

以下是本地或其他转接器执行中无法获取的内容列表:

  • 摘要 API - 可以为您的目的重新实施或修改
  • 为更好的性能自定义混凝土 API
  • 持久性状态
  • 隐性平行主义
  • 用于静态分析的衍生程序图表

使用量

抽象界面

$ npm install --save-dev @effectful/es
$ npm install --save @effectful/es-rt

例如:

{
  "plugins": ["@effectful/es/transform"]
}

或者说:

$ babel --plugins @effectful/es/transform index.js

默认情况下,它为 @ 无效/ es- t。 。 。 .

它是EcmaScript async的抽象界面的实现, 发电机和同步函数。 界面尚没有文档. 默认执行相当小,可以作为 现在 有一个 importRT 通过一些超载混凝土选项 执行图书馆.

{
  "plugins": [["@effectful/es/transform",{"importRT":"my-custom-effects"}]]
}

零配置转换

使用零配置 贝亚尔- 插孔- macros, (中文(简体) ), 或默认启用的任何其他工具(例如: 创建 Reat App 从v2起.

在您想要转录的模块中导入“ @ effectful/ es/ macro” 模块 .

明确的具体执行

$ npm install --save-dev @effectful/es
$ npm install --save @effectful/es-inline-rt

这个. .

{
  "plugins": [["@effectful/es/transform",{"inline":true}]]
}

执行速度快得多,但没有任何办法使任何事情过重.

其他选择包括:

  • loose - 喜欢 inline 但它也降低了一些 ECMAScript 兼容性 特性使生成的代码更小更快
  • defunct - 狦 true 状态被编码为数字, 有一个单一 函数可以在州间移动;否则,州是一个州过渡 函数回调
  • topLevel - 狦 true 将状态过渡函数移出原功能 函数的正文
  • par - 允许隐含的平行主义。 还没用 "入行","出行","上行"

有许多较低级别的选项,如: 配置( j)。 。 。 .

它们的值可以使用 all, (中文(简体) ), file, (中文(简体) ), pure, (中文(简体) ), effectful, (中文(简体) ), generators, (中文(简体) ), async, (中文(简体) ), asyncGenerators 字段在插件选项中。 例如,使用通用JS模块代替 用于运行时间注射的默认ES:

{
  "plugins": [["@effectful/es/transform",{"file":{"modules":"commonjs"}}]]
}

隐性平行主义

如果启用, 编译器将在起始位置找到"par"和"seq" ,用于在平行模式和相继模式 resp 之间切换.

例如:

async function parDemo() {
  "par";
  const a = await A;
  const b = await B(a);
  const c = await C;
}

ESLint抱怨没有使用表达式,因此作为替代 这些指令 profile 函数需要单个 字符串字元参数 ("par"或"seq"):

import * as M from "@effectful/es"

async function parDemo() {
  M.profile("par");
  const a = await A;
  {
    M.profile("seq")
    const b = await B;
    const c = await C;
  }
}

取消

默认情况下, 运行时间也会添加 M.cancelSymbol 每个属性 回到承诺。 这是一个功能,它试图停止执行 表示相应的同步函数。 取消将推广到 await 如果用这种方法表达,但是没有传播 给孩子们.

还有帮助器功能 M.cancel 它只是调用 promise[M.cancelSymbol]() 如果它存在的话.

自由主义

根据麻省理工学院(麻省理工学院)许可证的规定分发.

版本与发布记录

@effectful/es 共发布 70 个版本,首次发布于 2017/11/06;过去 12 个月发布了 5 个版本。

版本发布日期距今
2.0.13latest2026/05/245 个月前
2.0.122026/05/235 个月前
2.0.92026/04/127 个月前
2.0.82025/11/2711 个月前
2.0.72025/11/2711 个月前
2.0.62025/06/051.4 年前

关于 @effectful/es 的常见问题

@effectful/es 是什么?

使用 @ effectful/ core( 抽象界面) 的标准 JavaScript 效果

如何安装 @effectful/es?

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

@effectful/es 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/effectful__es 是否存在。

@effectful/es 支持 ESM 还是 CommonJS?

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

@effectful/es 可以商用吗?

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

@effectful/es 的下载量有多少?

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

@effectful/es 还在维护吗?

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