@effected/pnpm-plugin-effect

中文文档
0.19.3发布于 2026/10/31MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 5918

pnpm 配置依赖,用于整个效应生态系统的集中目录管理.

中文使用文档
文档目录5 节
  1. 为什么 @ effect/pnpm- plugin 效果
  2. 安装
  3. 使用量
  4. 飞来飞去
  5. 许可证

@ effected/pnpm- plugin 效果

npm License: MIT Node.js %3E%3D24.11.0 TypeScript 7.0 pnpm

一个小时 配置依赖 将两个软件包的版本集中到四个 pnpm 目录编辑 effect 双盖 effect 联 合 国 @effect/* 一号卫星 效果 v4 释放,加 @effect/tsgo (a) 独立针 effected 双面覆盖每个已发布 @effected/* 除了这个包。 每个配对都有你所依赖的版本的目录,第二个是您作为同伴所广告的范围的目录,所以一个库不会过度限制安装它的应用程序. 安装一次, 工作空间的每个软件包都可以使用全部四个目录 .

预1.0.0。 。 。 . 此软件包是 @effected/* 在稳定基础上建造的工具包 效应v4(effect ^4.0.0) 并仍在 0.x 发展。 稳定效果 制作一个工具箱 1.0.0 可能,不是自动的。 为了保持你的 effect 财务报告和审定财务报表 @effect/* 该工具包在线上构建和测试、安装 @effected/pnpm-plugin-effect。 。 。 .

稳定:不稳定. 此软件包的 API 表面尚未考虑 完成并可能改变 0.x 释放 定一个确切的版本——甚至 标记软件包 稳定 在此之前 1.0.0 可以引入突破性更改 和精确的针 变成一个类型检查错误 而不是一个 跑步时间惊喜。 完全政策: 释放策略。 。 。 .

为什么 @ effect/pnpm- plugin 效果

效应船作为一打必须一起移动的包裹. 用手把它绑住,针会飘来飘去: @effect/* 组合垫款,其 effect pal 不再匹配您安装的核心, 失败会作为未被触碰的文件的类型错误表面 。 把针放在一个地方是整个想法,pnpm目录是机制—— catalog:effect ,在显示而非版本字符串中,在指针推进时,在一个地方编辑.

这个 @effected/* 工具箱有同样的问题 在更锋利的边缘。 每个套装都打开了 0.x当护身符没有穿过未成年人, 所以手写 ^0.14.0 停止解析当前切换包时的任何内容 0.15.0散出十几张名单 这些靶场静静地独立地腐烂 没有任何东西告诉你一个包裹 已经落下两个未成年人 直到一个装置拒绝给你任何电流. catalog:effected 将区域替换为名称,升级配置依赖性会同时移动整个工具包表面.

对应目录是您无法从目录中获取的部分 。 图书馆的 peerDependencies 应该像 宽 因为它可以安全,而它的 devDependencies 应该像 具体 这些数字不同,用人工计算整个生态系统的同龄人底数是严峻的. effect:peers 财务报告和审定财务报表 effected:peers 是计算,一次完成。 这是一个方便,而不是要求——它包罗万象 实际 因此,一个想要同样的学科的项目可以采用它而不是重建它。 它运送目录和一个pnpmfile,而不是代码API.

安装

添加成一个 配置依赖 ——不是经常依赖. 配置依赖在树的其他部分前被安装,这就使得它们为安装提供目录和钩子如下:

pnpm add --config @effected/pnpm-plugin-effect

要求pnpm 11或更新,和Node.js QQ24.11.0. 没有npm或线条等同: 配置依赖和目录是pnpm的特性.

命令将软件包写入您的 pnpm-workspace.yaml数字 :

configDependencies:
  "@effected/pnpm-plugin-effect": <version>+sha512-...

事后检查一下档案,并期望用手来修复. 在pnpm 11.24.0时 pnpm add --config 写入新条目 无 一个完整的散列,并剥去 +sha512-… 后缀从每个 其他项目 已经列出的配置依赖——包括命令没有理由触及的那些依赖。 一会儿 pnpm install 不恢复它们。 配置依赖被安装在所有其他东西之前,并且可以贡献在安装过程中运行的钩子,所以完整性指针是站在你和一个没有验证的包之间,具有这种伸展能力的东西.

手写散列被接受和保存,所以固定是放回:

configDependencies:
  "@effected/pnpm-plugin-effect": 0.6.11+sha512-...
  "@your-org/other-config-dep": 1.2.3+sha512-...   # restore this one too

您可以从登记册中读取正确的散列版本 :

npm view "@effected/pnpm-plugin-effect@<version>" dist.integrity

使用量

安装后,工作空间的每个软件包都可以使用全部四个目录. 参考他们来自 package.json 按名称,取而代之的是版本范围。 他们进入的哪个字段取决于您是否正在构建一个应用程序或一个库.

应用程序直接将版本贴上 dependencies数字 :

{
  "dependencies": {
    "effect": "catalog:effect",
    "@effect/ai-openai": "catalog:effect",
    "@effected/workspaces": "catalog:effected"
  }
}

图书馆既要每双的一半:被绑定的版本进行开发和测试,也要计算出消费者必须满足的地板.

{
  "devDependencies": {
    "effect": "catalog:effect",
    "@effected/workspaces": "catalog:effected"
  },
  "peerDependencies": {
    "effect": "catalog:effect:peers",
    "@effected/workspaces": "catalog:effected:peers"
  }
}

pnpm 重写 catalog: 具体范围的说明者,当它公布时,所以登记簿上哪些土地是普通的。 下游不需要这个插件, 或是 pnpm .

飞来飞去

目录目录用进去
catalog:effect每个 effect 财务报告和审定财务报表 @effect/* 软件包, 绑入一个 v4 释放dependencies 申请, devDependencies 图书馆
catalog:effect:peers计算共享对等层的同一套软件包peerDependencies 图书馆
catalog:effected每一份出版物 @effected/* 当前发行的软件包dependencies 申请, devDependencies 图书馆
catalog:effected:peers同一套套装在小底同位素范围内peerDependencies 图书馆

@effected/pnpm-plugin-effect 本身被故意缺席 effected 编目——这是编目船内部的包裹,列出它会让每个编目重写会撞出装有编目的包裹.

它也运载了pnpmfile,pnpm从配置依赖自动加载. 没有什么可以导入的,也没有可以调用的——软件包没有代码API,只有配置.

除了目录, pnpmfile 对每个消费者应用两个设置:

  • 排除释放年龄: effect 财务报告和审定财务报表 @effect/* 豁免 minimumReleaseAge,所以一个固定效应释放 仅几小时的旧.
  • 范围覆盖 : @effect/platform-node-shared 刻入其父版本 @effect/[email protected] 财务报告和审定财务报表 @effect/[email protected]新的决心将它与为另一种人建造的更新的工具结合起来 effect,在启动时崩溃工具。 每个超接只应用在自己的母程序下,所以一个稳定的安装从不被触碰,你自己的 overrides 被保存在他们旁边。 如果您自己设置了相同的选择器, 您的值会获胜, 插件会警告 .

这个 effect 当效应针推进时,目录会移动,这是人为的蓄意升级. 这个 effected 目录是随着工具包的放行而自动重建的,因此这个软件包的每个新版本都携带了工具包的当前版本;提升配置依赖性是消费者如何取取.

pnpm update --config @effected/pnpm-plugin-effect
pnpm install
# every catalog: specifier in the workspace re-resolves to the new pins

因为效果释放 effect 和每个 @effect/* 将软件包放在一个版本,两个版本 effect 分类基本一致。 一旦软件包的放出脱离同步,地板的计算就能赚取其保值——它在Effect v3中挣得,地板在V3中确实存在差异。 这个 effected 双胞胎通常有差异,因为套件的依赖性会跟踪其准确的释放,而同位素范围则会降低到未成年人.

许可证

麻省理工学院

版本与发布记录

@effected/pnpm-plugin-effect 共发布 109 个版本,首次发布于 2026/07/17;过去 12 个月发布了 109 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.19.3latest2026/10/3113 天前
0.19.22026/10/3014 天前
0.19.12026/10/2915 天前
0.19.02026/10/2915 天前
0.18.82026/10/2716 天前
0.18.72026/10/2717 天前

关于 @effected/pnpm-plugin-effect 的常见问题

@effected/pnpm-plugin-effect 是什么?

pnpm 配置依赖,用于整个效应生态系统的集中目录管理.

如何安装 @effected/pnpm-plugin-effect?

在项目目录运行 npm install @effected/pnpm-plugin-effect,或使用 pnpm add / yarn add / bun add。

@effected/pnpm-plugin-effect 支持 TypeScript 吗?

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

@effected/pnpm-plugin-effect 支持 ESM 还是 CommonJS?

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

@effected/pnpm-plugin-effect 需要什么版本的 Node.js?

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

@effected/pnpm-plugin-effect 可以商用吗?

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

@effected/pnpm-plugin-effect 的下载量有多少?

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

@effected/pnpm-plugin-effect 还在维护吗?

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