Effect
欢迎使用Effect,这是一个强大的TypeScript框架,提供了一个功能齐全的函数式效果系统和丰富的标准库。
要求
- TypeScript 5.4 或更高版本
- 在你的
tsconfig.json
文件中启用strict
标志
{
// ...
"compilerOptions": {
// ...
"strict": true,
},
}
文档
有关详细信息和使用示例,请访问Effect网站。
Effect简介
要开始使用Effect,请观看我们在YouTube上的介绍视频。这个视频概述了Effect及其主要特性,是新手入门的绝佳起点:
加入我们的社区
加入我们活跃的Discord社区,与其他开发者互动、提问和分享经验。这是我们Discord服务器的邀请链接:加入Effect的Discord社区。
API参考
有关Effect API的详细信息,请参阅我们的API参考。
通过拉取请求贡献
我们欢迎通过拉取请求进行贡献!以下是一些帮助你入门的指南:
设置你的环境
首先,fork仓库并将其克隆到你的本地机器。
进入克隆的仓库并为你的更改创建一个新分支:
git checkout -b my-branch
通过运行以下命令确保安装所有必需的依赖项:
pnpm install # 需要pnpm 9.0.4版本
进行更改
实现你的更改
对代码库进行你提议的更改。如果你的更改影响功能,请添加相应的测试以验证你的更新。
验证你的更改
运行以下命令以确保你的更改不会引入任何问题:
pnpm codegen
(可选):如果你更改了包的结构或引入了新模块,重新生成包入口点。pnpm check
:确认代码编译没有错误。pnpm test
:执行所有单元测试,确保你的更改没有破坏现有功能。pnpm circular
:检查导入中是否存在循环依赖。pnpm lint
:确保代码符合我们的编码标准。- 如果遇到样式问题,使用
pnpm lint-fix
自动纠正其中一些问题。
- 如果遇到样式问题,使用
pnpm dtslint
:运行类型级测试。pnpm docgen
:确保文档生成正确并反映所做的任何更改。
记录你的更改
JSDoc注释
添加新功能时,使用JSDoc注释记录你的代码很重要。这有助于其他开发者理解你的更改的目的和用法。在你的JSDoc注释中至少包含以下内容:
- 简短描述:总结功能的目的和功能。
- 示例:在
@example
标签下提供使用示例,展示如何使用该功能。 - 引入版本:使用
@since
标签指明引入该功能的版本。如果你不确定版本,请咨询项目维护者。 - 类别(可选):你可以使用
@category
标签对功能进行分类,以帮助组织文档。如果你不确定分配什么类别,请询问项目维护者。
变更集文档
在提交更改之前,使用变更集记录它们。这个过程有助于跟踪修改并有效地将它们传达给项目团队和用户:
pnpm changeset
在创建变更集的过程中,你将被提示为你的更改选择适当的级别:
- patch:如果你进行小修复或不影响库整体功能的小变更,选择此项。
- minor:为增强功能但不破坏现有功能的新特性选择此项。
- major:为任何导致库向后不兼容修改的更改选择此项。
完成你的贡献
提交你的更改
一旦你用变更集记录了你的更改,就该将它们提交到仓库了。使用清晰描述性的提交消息,可以与你在变更集中使用的消息相同:
git commit -am '添加某个功能'
链接到问题
如果你的提交解决了一个开放的问题,在你的提交消息中直接引用问题编号。这有助于将你的贡献明确地链接到特定任务或错误报告。此外,如果你的提交解决了问题,你可以通过添加类似", closes #<问题编号>"
的短语来表示。例如:
git commit -am '添加某个功能, closes #123'
这种做法不仅有助于跟踪问题的进展,而且在提交合并时会自动关闭问题,简化项目管理。
推送到你的Fork
将更改推送到你的GitHub fork:
git push origin my-branch
创建拉取请求
对原始仓库的适当分支打开一个拉取请求:
main
分支:用于小补丁或错误修复。next-minor
分支:用于非破坏性的新功能。next-major
分支:用于引入破坏性修改的更改。
请耐心等待!我们将尽快审核你的拉取请求。