学习Vue2子目录.github

134 阅读4分钟

.github文件夹是 GitHub 平台用于 标准化项目管理、协作流程和社区治理 的核心配置文件夹。以下是其功能和作用,以及附件中列出的每个文件/文件夹的详细说明: image.png

文件/文件夹的作用

文件名作用
ISSUE_TEMPLATEIssue 模板目录:包含标准化模板(如 Bug 报告、功能请求),强制用户在提交 Issue 时填写必要信息(如复现步骤、版本号)。
CODE_OF_CONDUCT.md行为准则:规定社区成员互动规则(如禁止歧视、骚扰),违反者可能被禁言或封禁。
COMMIT_CONVENTION.md提交信息规范:约定 Git 提交信息的格式(如 feat:fix:),便于生成 CHANGELOG 和代码审查。
CONTRIBUTING.md贡献指南:说明如何参与贡献(如开发环境配置、测试流程、Issue/PR 规范)。
FUNDING.yml赞助配置:定义项目赞助渠道(如 GitHub Sponsors、Open Collective),引导用户支持项目发展。
PULL_REQUEST_TEMPLATE.mdPR 模板:规范 Pull Request 的提交内容(如关联 Issue、修改描述、测试覆盖)。

与其他目录的关系

  • /.github/workflows(未列出但常见):存放 GitHub Actions 自动化脚本(如 CI/CD 流程)。
  • /docs:项目文档,与 CONTRIBUTING.md 互补(前者面向用户,后者面向开发者)。

ISSUE_TEMPLATE/config.yml

GitHub Issue 模板的配置文件

image.png

核心配置解析

1. blank_issues_enabled: false

  • 作用:禁止用户提交空白 Issue(即不通过模板直接创建 Issue)。
  • 意义:强制开发者使用标准化模板(如 Bug 报告、功能请求),确保问题描述完整,减少低质量 Issue。

2. contact_links

  • 作用:在 Issue 创建页面显示自定义联系链接,引导用户到指定渠道。

  • 包含的链接

    链接名称URL用途
    Create new issuehttps://new-issue.vuejs.org/跳转到 Vue 官方 Issue 向导页面(强制标准化提交)。
    Patreonhttps://www.patreon.com/evanyou引导用户通过 Patreon 赞助 Vue.js 开发(个人支持渠道)。
    Open Collectivehttps://opencollective.com/vuejs引导用户通过 Open Collective 赞助(开源集体赞助渠道)。

文件的作用

  1. 规范化 Issue 提交

    • 通过禁用空白 Issue 和跳转至 new-issue.vuejs.org,确保所有问题都按模板填写(如复现步骤、版本信息等)。
  2. 分流非技术请求

    • 将赞助请求引导至 Patreon/Open Collective,避免 GitHub Issues 被无关内容占用。
  3. 维护开源可持续性

    • 明确展示赞助渠道,鼓励社区资助项目发展。

与其他文件的关系

  • 与 ISSUE_TEMPLATE/ 目录下的模板文件(如 bug_report.md)配合使用:

    • config.yml 控制是否强制使用模板,而模板文件定义具体内容格式。
  • 与 CONTRIBUTING.md

    • 共同构成贡献指南,前者侧重 Issue 提交流程,后者涵盖更广泛的协作规范。

用户可见效果

当用户在仓库点击  "New Issue"  按钮时,会看到以下界面(而非直接创建空白 Issue):

  1. 显眼的提示: “Don’t see your issue here? Use the link below.”
  2. 跳转链接按钮(指向 new-issue.vuejs.org)。
  3. 底部的赞助联系方式(Patreon 和 Open Collective)。

适用场景

  • 提交 Bug/功能请求:必须通过官方向导页面。
  • 支持项目:点击赞助链接而非创建无关 Issue。
  • 维护者管理:减少无效 Issue,聚焦核心问题。

PULL_REQUEST_TEMPLATE.md文件

核心作用

  1. 标准化 PR 提交

    • 强制要求开发者按模板填写关键信息,避免遗漏重要内容(如关联 Issue、测试覆盖)。
  2. 提高审查效率

    • 通过分类选项(如 Bugfix、Feature)快速判断 PR 性质,减少沟通成本。
  3. 保障代码质量

    • 明确要求测试通过、分支规范等,确保合并的代码符合项目标准。

模板内容解析

1. PR 类型分类(必选)

What kind of change does this PR introduce? (check at least one)
- [ ] Bugfix
- [ ] Feature
- [ ] Code style update
- [ ] Refactor
- [ ] Build-related changes
- [ ] Other, please describe:
  • 作用:明确 PR 的修改性质,便于分类管理(如生成 CHANGELOG 时区分功能新增和 Bug 修复)。

2. 破坏性变更声明(必选)

Does this PR introduce a breaking change? (check one)
- [ ] Yes
- [ ] No
  • 若选 "Yes" :需补充说明影响范围和迁移方案,例如: ## Impact - 移除 v-bind.sync,改用 v-model。 ## Migration - 用户需将 <Child :foo.sync="bar" /> 改为 <Child v-model:foo="bar" />

3. 基础要求验证(必填)

The PR fulfills these requirements:
- [ ] It's submitted to the `dev` branch for v2.x (or to a previous version branch), not the `master` branch
- [ ] When resolving a specific issue, it's referenced in the PR's title (e.g. `fix #xxx[,#xxx]`, where "xxx" is the issue number)
- [ ] All tests are passing: [Development Setup](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#development-setup)
- [ ] New/updated tests are included
  • 关键规则

    • 分支规范:Vue 2.x 的 PR 必须提交到 dev 分支(非 master)。
    • Issue 关联:PR 标题需包含关联的 Issue 编号(如 fix #123)。
    • 测试覆盖:必须通过全部测试,新增代码需补充测试用例。

4. 新功能说明(可选)

If adding a new feature, the PR's description includes:
- [ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)
  • 作用:防止开发者盲目开发未共识的功能,要求先通过 Issue 讨论可行性。

5. 其他信息

Other information:
  • 可补充代码设计思路、依赖变更、兼容性考虑等。

实际应用示例

  • 示例 PR 标题:
fix(compiler): handle v-for key warning with fragment nodes close #4567
  • 示例 PR 内容:
## Change Type
- [x] Bugfix

## Breaking Change
- [ ] Yes
- [x] No

## Requirements
- [x] Submitted to `dev` branch
- [x] Fixes #4567
- [x] All tests passed
- [x] Added test cases for fragment key checks

## Description
修复当 `v-for` 用于 `<template v-for>` 时,键(key)警告误报的问题。