Nuxt UI v3-alpha 已发布!

试用
入门

贡献

了解如何为 Nuxt UI 贡献力量。

Nuxt UI 得益于其优秀的社区 ❤️,社区成员通过提交问题、创建拉取请求和提供宝贵的反馈来贡献力量。

在报告错误或提出功能请求之前,请确保您已阅读我们的文档和现有的 问题

提交拉取请求 (PR)

1. 开始之前

检查是否存在描述您正在处理的问题或功能请求的现有问题。如果有,请在问题上留言,让我们知道您正在处理它。

如果没有,请打开一个新问题来讨论问题或功能。

2. 本地开发设置

要开始本地开发,请按照以下步骤操作

  1. nuxt/ui 仓库克隆到您的本地机器
git clone https://github.com/nuxt/ui.git
  1. 启用 Corepack
corepack enable
  1. 安装依赖项
pnpm install
  1. 生成类型存根
pnpm run dev:prepare
  1. 配置您的本地开发环境
  • 要处理位于 docs 文件夹中的**文档**,请运行
pnpm run dev
  • 要使用**游乐场**测试组件,请运行
pnpm run play

IDE 设置

我们建议使用 VS Code 以及 ESLint 扩展。您可以在保存代码时启用自动修复和格式化。方法如下

{
  "editor.codeActionsOnSave": {
    "source.fixAll": false,
    "source.fixAll.eslint": true
  }
}

您也可以使用 lint 命令

pnpm run lint # check for linting errors
pnpm run lint:fix # fix linting errors

没有 Prettier

由于 ESLint 已经配置为格式化代码,因此不需要使用 Prettier 来重复功能。

如果您在编辑器中安装了 Prettier,我们建议您禁用它,以避免冲突。

类型检查

我们使用 TypeScript 进行类型检查。您可以使用 typecheck 命令检查类型错误

pnpm run typecheck

3. 提交约定

我们使用 Conventional Commits 进行提交信息,这允许根据提交自动生成变更日志。如果您不熟悉它,请阅读 指南

注意

  • fixfeat 用于实际的代码更改(可能会影响逻辑)。对于排版或文档更改,请使用 docschore 代替

fix: typo -> docs: fix typo

  • 如果您正在处理特定的组件,请确保在括号中指定提交的主要范围。例如
feat(Alert): new component
chore(Table): improve accessibility

4. 创建拉取请求

  • 在创建 PR 时,请按照提供的 说明进行操作
  • 确保您的 PR 标题符合 Conventional Commits 标准,因为代码合并后会使用它。
  • 多个提交是可以的;无需重新设置基线或强制推送。合并时我们将使用 Squash and Merge
  • 在提交 PR 之前,请确保代码已通过 linting 并手动运行测试。避免进行无关的更改。

5. 提交拉取请求后

我们会尽快进行审查。如果分配给维护者,他们会仔细审查它。忽略红色文本;它是用于跟踪目的的。

项目结构

在这个项目中,您会发现各种用于不同目的的文件夹和文件。以下是主要文件夹和文件的概述

  • 文档 - docs :

文档位于 docs 文件夹中。它是一个 Nuxt 应用程序,使用 @nuxt/content 模块从 Markdown 文件生成文档页面。以下是其结构的细分

docs/
├── components/
│   ├── examples/     # Components used in documentation as examples
│   └── themes/       # Components used in the examples page in the theming section
├── content/          # Documentation, separated into categories according to component types
│   ├── 1.getting-started/
│   │   ├── 1.index.md
│   │   ├── 2.installation.md
│   │   ├── ... etc
│   ├── 2.elements/         # The category of components, which are elements
│   │   ├── 1.accordion.md  # Docs for a single component (i.e., accordion)
│   │   ├── 2.alert.md
│   │   ├── ... etc
└── ... etc
  • 组件 - src :

组件位于 src 文件夹中。它根据组件类型分为不同的类别。以下是其结构的细分

src/
├── runtime/
│   ├── composables/            # Composable functions used in components
│   ├── components/             # Components folder, separated into categories according to component types
│   │   ├── data/               # The category of components, which are data related
│   │   │   ├── table.vue/      # Table component
│   │   │   ├── elements/       # Elements category
│   │   │   │   ├── ...etc/
│   │   │   └── ... etc/
│   │   ├── plugins/            # Plugins used in components
│   │   ├── utils/              # Utility functions used on the components page (e.g., lodash)
│   │   ├── types/              # Types used in components
│   │   │   ├── accordion.d.ts/ # [componentName].d.ts type used for single component
│   │   │   ├── avatar.d.ts/
│   │   │   └── ... etc/
│   │   ├── ui.config.ts/       # Configuration file used to apply styles to every component
├── colors.ts/                  # Everything related to color functions (e.g., safelistByComponent, generateSafelist)
└── ... etc/                    # Other files and folders

感谢

再次感谢您对这个项目的兴趣!您很棒!❤️