入门指南
如何贡献
遵循以下指南以确保顺利协作
感谢您有兴趣为 Inspira UI 项目做出贡献!您的贡献帮助使这个项目对每个人都更好。请花一点时间阅读这些指南,以确保顺畅的协作。
目录
入门
- Fork 仓库:在 GitHub 上创建项目的个人副本。
- 克隆 Fork:将您的 fork 仓库克隆到本地机器。
- 创建分支:为您的贡献创建新分支 (
git checkout -b feature/YourFeatureName)。 - 安装依赖:运行
pnpm install以安装所有必要的依赖。
行为准则
通过参与此项目,您同意遵守 行为准则,该准则旨在营造开放和欢迎的环境。
如何贡献
报告 Bug
如果您发现 bug,请打开一个 issue 并包括:
- 清晰而描述性的标题。
- 重现问题的步骤。
- 预期和实际结果。
- 截图或代码片段(如适用)。
建议改进
我们欢迎新功能或改进的建议。请打开一个 issue 并包括:
- 清晰而描述性的标题。
- 改进的详细说明。
- 任何相关的示例或模型。
添加新组件
我们感谢为库添加新组件的贡献。请确保:
- 该组件通常有用,并与项目目标一致。
- 该组件与 Nuxt 和 Vue 兼容。
- 您遵循下面列出的编码和文档指南。
- 您为您的组件包括单元测试。
组件指南
- 创建或更新
index.tscomponents/content/inspira/ui/<component-folder-name>/下的每个文件夹都应该有一个index.ts,导出所有 Vue 文件。例如:// index.ts export { default as Book } from "./Book.vue"; export { default as BookDescription } from "./BookDescription.vue"; export { default as BookHeader } from "./BookHeader.vue"; export { default as BookTitle } from "./BookTitle.vue"; - 注册表依赖项:
如果您的新组件依赖(或使用)其他 Inspira UI 组件,您必须更新
~/scripts/crawl-content.ts中的COMPONENT_DEPENDENCIES映射以反映这些关系。这帮助库理解当用户通过 CLI 添加组件时应该一起安装哪些组件。 - 仅限 Nuxt 的功能:
如果您的新组件或其示例使用仅限 Nuxt 的功能(如
<ClientOnly>),请在文档中提及。这确保用户知道在 Nuxt 外部使用该组件时可能存在限制或额外步骤。
这确保用户可以通过 CLI 安装该组件,并且所有依赖项都正确声明。 - 避免外部组件:
创建组件时,避免使用不属于核心 Vue.js 生态系统的外部 UI 组件(如
<UiButton>或类似)。 - 显式导入:
即使您在开发过程中使用 Nuxt 的自动导入功能,也始终在组件代码中包含显式导入。这确保与没有自动导入的 Vue.js 用户的兼容性。例如:
<script setup lang="ts"> import { useWindowSize } from "@vueuse/core"; import { onMounted, ref } from "vue"; // 包含所有导入明确