@ effect/pnpm- plugin 受影响
一个小时 配置依赖 将效果生态系统和 @effected/* 包通过一个 pnpm 目录, (中文(简体) ), effected然后把工具箱的积木链接通一下, effected:build覆盖 effect 联 合 国 @effect/* 一号卫星 效果 v4 未成年人, @effect/tsgo 在自己的独立针, 和每一个出版 @effected/* 除了这个包。 安装一次 catalog:effected 用于您工作空间中的每个软件包,无论是依赖还是对等范围.
预
1.0.0。 。 。 . 此软件包是@effected/*在稳定基础上建造的工具包 效应v4(effect~4.1.0) 并仍在0.x发展。 稳定效果 制作一个工具箱1.0.0可能,不是自动的。 为了保持你的effect财务报告和审定财务报表@effect/*该工具包在线上构建和测试、安装 此软件包作为配置依赖( 下方) .稳定:不稳定. 此软件包的 API 表面尚未考虑 完成并可能改变
0.x释放 定一个确切的版本——甚至 标记软件包 稳定 在此之前1.0.0可以引入突破性更改 和精确的针 变成一个类型检查错误 而不是一个 跑步时间惊喜。 完全政策: 释放策略。 。 。 .
为什么 @ epnpm- plugin 受到影响
效应船作为一打必须一起移动的包裹. 用手把它绑住,针会飘来飘去: @effect/* 组合垫款,其 effect 端点不再匹配您安装的核心, 失败将显示为没有触及到的文件的类型错误, 或是导入时的崩溃 。 把针放在一个地方是整个想法,pnpm目录是机制—— catalog:effected 在一个显示器中,而不是一个版本字符串,和一个在指针推进时会移动的地方.
这个 @effected/* 工具箱有同样的问题 在更锋利的边缘。 每个套装都打开了 0.x当护身符没有穿过未成年人, 所以手写 ^0.14.0 停止解析当前切换包时的任何内容 0.15.0分布在十几个货单上 这些地盘静而独立地腐烂. catalog:effected 将区域替换为名称,升级配置依赖性会同时移动整个工具包表面.
一个目录只达到你写的清单 您的从属关系名称 effect 和它的卫星, 和护身符可以配对 卫星与它没有建造的核心。 插件覆盖了整个图表的空白。 这是一个方便,而不是要求——它包罗万象 实际 因此,一个想要同样的学科的项目可以采用它而不是重建它。 它运送一个目录和一个pnpmfile,而不是一个代码API.
安装
添加成一个 配置依赖 ——不是经常依赖. 配置依赖在树的其他部分前被安装,这就使得它们为安装提供目录和钩子如下:
pnpm add --config @effected/pnpm-plugin-effected
要求pnpm 11或更新,和Node.js QQ24.11.0. 没有 npm 或 bun 等同: 配置依赖和目录为 pnpm 特性 .
命令将软件包写入您的 pnpm-workspace.yaml 在简单版本中:
configDependencies:
"@effected/pnpm-plugin-effected": <version>
平正的版本是"犬形". 仍然很荣幸 +sha512-… 如果有完整后缀, 则在条目上设置后缀, 但您不需要添加.
如果工作空间设定 minimumReleaseAge,将插件添加到 minimumReleaseAgeExclude 所以一个只有几个小时的版本仍然安装:
minimumReleaseAgeExclude:
- "@effected/pnpm-plugin-effected"
使用量
一旦安装, catalog:effected 用于工作空间中的每个软件包。 参考自 package.json 取代版本范围——在每个依赖领域.
应用程序 :
{
"dependencies": {
"effect": "catalog:effected",
"@effect/ai-openai": "catalog:effected",
"@effected/workspaces": "catalog:effected"
}
}
图书馆从 effected 及其同行从 effected:peers数字 :
{
"devDependencies": {
"effect": "catalog:effected",
"@effected/workspaces": "catalog:effected"
},
"peerDependencies": {
"effect": "catalog:effected:peers",
"@effected/workspaces": "catalog:effected:peers"
}
}
pnpm 重写 catalog: 混凝土组装时的示意图,所以登记簿上的是什么是普通的表态. 下游不需要这个插件, 或是 pnpm 。 包装的同龄人广告 服务目录的价值, 所以拼写同龄人通过 :peers 目录 : catalog:effected:peers 包装 effect: ~4.<minor>.0 和每个 @effected/* 软件包在 ^0.<minor>.0。对等码拼写 catalog:effected 将包装精确的 Effect 版本的插件针 并让每个消费者都到那个补丁。 如果一个库需要更广泛的对等器,请用手写出这个范围在自己的表单上.
飞来飞去
| 条目 | 范围 | 页:1 |
|---|---|---|
effect 和每个 @effect/* 软件包 | 插件的精确版本 :4.<minor>.<patch>(三); ~4.<minor>.0 内 effected:peers | 新的效果发布随新插件发布而来, 绝不通过范围 |
@effect/tsgo | 它的精确的针 自己 0.x 线条 | 独立版本 effect |
每一份出版物 @effected/* 软件包 | 现时释放,加护身符; 下至 ^0.<minor>.0 内 effected:peers | 打开 0.x 护身符会把未成年人钉上 |
每个目录都有 :peers 双胞胎, effected:peers 财务报告和审定财务报表 effected:build:peers,将每个射程都铺到未成年人 peerDependencies。 。 。 . catalog:effect 财务报告和审定财务报表 catalog:effect:peers 不存在, 并且有一个名称仍然无法安装 。 您在目录中声明自己 的条目, 插件服务胜过同一套件的插件, 所以 catalogs.effected 屏蔽您左侧较早的导出 pnpm-workspace.yaml 保留其旧范围,直到再出口或删除为止。 你的其他目录被保存.
建筑目录
第二个目录, effected:build,保持构建链 effected package build 运行和工具链
| 条目 | 作用 |
|---|---|
tsdown, (中文(简体) ), @tsdown/exe, (中文(简体) ), rolldown, (中文(简体) ), rolldown-plugin-dts | 捆绑和申报证 |
@microsoft/api-extractor, (中文(简体) ), @microsoft/api-extractor-model, (中文(简体) ), @microsoft/tsdoc, (中文(简体) ), @microsoft/tsdoc-config | a. 评估报告与TSDoc |
typescript, (中文(简体) ), @types/node, (中文(简体) ), tsx | 编译器、节点类型和 TypeScript 驱动程序 |
react, (中文(简体) ), react-dom, (中文(简体) ), @types/react, (中文(简体) ), @types/react-dom, (中文(简体) ), @rsbuild/core | 反应及其类型,以及 Rsbuild |
用工具包构建的寄存器 catalog:effected:build 对于这些,所以它的建筑链 是那个装箱 建造和测试用:
{
"devDependencies": {
"@effected/plugin": "catalog:effected",
"typescript": "catalog:effected:build",
"@types/node": "catalog:effected:build"
}
}
此目录不会产生任何覆盖: 它会设定您的列表名称, 而不是其它 。 pnpmfile 也允许 TypeScript 7.1 在 tsdown,个人 typescript 同行不承认.
@effected/pnpm-plugin-effected 它本身被刻意地从目录中遗漏了出来——这是目录内的船只的包裹,列出它会让每个目录重写出带目录的包裹.
它也运载了pnpmfile,pnpm从配置依赖自动加载. 没有进口和呼叫。 除了目录, pnpmfile 将这些设置应用于每个消费者:
- 效果家族覆盖 : 单人重置
effect财务报告和审定财务报表@effect/*软件包,"<name>@^4.0.0": "<catalog version>"从目录中推导出来 所以它随它而来 还有一个用于@effect/tsgo在自己的线路。 在你的图表中, 包括你的依赖性名称, 都保留着每个副本, 到目录版本, 所以卫星永远不能配对 核心 它不是它建造的。 永远不要手写这些针. - 排除释放年龄:
effect, (中文(简体) ),@effect/*财务报告和审定财务报表@effect/tsgo-*豁免minimumReleaseAge,所以一个固定效应释放 仅几小时的旧. - 范围覆盖 :
@effect/platform-node-shared刻入其父版本@effect/[email protected]财务报告和审定财务报表@effect/[email protected]新的决心将它与为另一种人建造的更新的工具结合起来effect,在启动时崩溃工具。 每个超接只应用在自己的母程序下,所以一个稳定的安装从不被触碰.
属于你的 overrides 被保存在插件旁边。 如果您自己设置了相同的选择器, 您的值将获胜 .
当套件向外推进时,效果条目会移动。 套件条目随着套件的放行而自动重建,因此每套新版本的本套件都携带了套件的当前版本;升级了配置依赖性是消费者如何取出:
pnpm update --config @effected/pnpm-plugin-effected
pnpm install
# every catalog:effected specifier in the workspace re-resolves to the new pins