贡献
感谢您对参与到这个项目中来!
警告: ⚠️ 降低新函数的添加速度
随着 VueUse 用户群体的不断增长,我们收到了大量令人难以招架的功能请求和 Pull Request。 因此,维护项目变得越来越具有挑战性,并且已经将我们的能力推向了极限。 因此,在不久的将来,我们可能需要降低我们接受新功能的速度,并优先考虑现有功能的稳定性和质量。 请注意,目前可能不会接受 VueUse 的新功能。如果您有任何新的想法,我们建议您首先将它们整合到您自己的代码库中,根据您的需要进行迭代,并评估其通用性。如果您坚信您的想法对社区有益,您可以提交一个 Pull Request 以及您的用例,我们将很乐意审查和讨论它们。感谢您的理解。
开发
设置
将此仓库克隆到您的本地机器并安装依赖项。
bash
pnpm install
我们使用 VitePress 进行快速开发和文档编写。您可以通过以下方式在本地启动它:
bash
pnpm dev
贡献
现有函数
欢迎您增强现有函数。请尽量不要引入破坏性更改。
新函数
添加新函数有一些注意事项
- 在您开始工作之前,最好先打开一个 Issue 进行讨论。
- 实现应放在
packages/core
下作为文件夹,并在index.ts
中暴露。 - 在
core
包中,尽量不要引入第三方依赖项,因为此包旨在尽可能轻量级。 - 如果您想引入第三方依赖项,请贡献到 @vueuse/integrations 或创建一个新的插件。
- 您可以在
packages/core/_template/
下找到函数模板,在 函数文件夹 部分详细说明。 - 在为您的函数编写文档时,
<!--FOOTER_STARTS-->
和<!--FOOTER_ENDS-->
将在构建时自动更新,因此无需更新它们。
请注意,您不需要更新包的
index.ts
。它们是自动生成的。
新的插件
非常欢迎新的插件!
- 在
packages/
下创建一个新文件夹,将其命名为您的插件名称。 - 在
scripts/packages.ts
中添加插件详细信息 - 在该文件夹下创建
README.md
。 - 像对核心包一样添加函数。
- 提交并作为 PR 提交。
项目结构
单仓库
我们对多个包使用单仓库
packages
shared/ - shared utils across packages
core/ - the core package
firebase/ - the Firebase add-on
[...addons]/ - add-ons named
函数文件夹
函数文件夹通常包含以下 4 个文件
您可以在
packages/core/_template/
下找到模板
bash
index.ts # function source code itself
demo.vue # documentation demo
index.test.ts # vitest unit testing
index.md # documentation
对于 index.ts
,您应该使用名称导出函数。
ts
// DO
export { useMyFunction }
// DON'T
export default useMyFunction
对于 index.md
,第一句话将显示为函数列表中的简短介绍,因此请尽量保持简洁明了。
markdown
# useMyFunction
This will be the intro. The detail descriptions...
阅读更多关于 指南。
代码风格
只要您安装了开发依赖项,就不用担心代码风格。Git 钩子会在您提交时为您格式化并修复它们。
致谢
再次感谢您对参与到这个项目中来!您太棒了!