为 Ionic 贡献力量
感谢您对 Ionic Framework 的贡献感兴趣!
贡献礼仪
请参阅 贡献者行为准则 了解行为准则相关信息。
创建问题
-
如果您对框架使用有疑问,请在 Ionic 论坛 上提问。
-
必须清晰描述重现您遇到的问题所需的步骤。虽然我们非常乐意尽可能帮助用户,但如果没有明确的复现步骤来诊断问题,这将极其耗时且难以持续。
-
Ionic 仓库的问题列表仅用于 Bug 报告和功能请求。不符合要求的议题将立即关闭。
-
没有明确复现步骤的问题将不会被处理。如果一个问题被标记为"需要:回复",并且在超过 14 天内未收到问题作者的进一步回复,它将被关闭。
-
如果您认为自己发现了 Bug,或有一个新功能想法,请先确认它是否已被 报告过。您可以搜索现有议题,看看是否有类似的报告。请包含已关闭的议题,因为它可能已附带解决方案关闭。
-
接下来,创建一个新议题,详细说明问题。请在提交议题前填写好弹出的议题表单。
创建良好的代码复现
什么是代码复现?
代码复现是为演示特定问题而构建的一个小型应用程序。代码复现应包含重现问题所需的最少代码,并应专注于单个问题。
为什么应该创建复现?
对您遇到的问题进行代码复现有助于我们更好地隔离问题的原因。这是解决任何 Bug 的重要第一步!
如果没有可靠的代码复现,我们很可能无法解决问题,导致议题被关闭。换句话说,为问题创建代码复现有助于我们帮助您。
如何创建复现
- 使用我们的一个启动模板创建一个新的 Ionic 应用程序。
blank启动应用程序是很好的选择。您可以使用以下 Ionic CLI 命令创建一个:ionic start myApp blank - 添加重现您遇到的问题所需的最少代码。不要包含任何不需要用于重现问题的内容。这包括您已安装的任何第三方插件。
- 将应用程序发布到 GitHub,并在 创建议题 时包含其链接。
- 务必包含重现问题的步骤。这些步骤应清晰且易于遵循。
创建复现的好处
- 使用 Ionic 最新版本: 通过创建新的 Ionic 应用程序,您可以确保测试的是框架的最新版本。有时您遇到的问题已在框架的较新版本中解决!
- 最小化影响面: 通过移除重现问题不需要的代码,可以更容易地识别问题的原因。
- 无需公开机密代码: 为问题创建最小化复现,可避免您不 得不发布项目中使用的任何专有代码。
- 获得修复问题的帮助: 如果我们能够可靠地复现问题,很可能就能解决它。
创建拉取请求
-
感谢您花时间贡献!在提交拉取请求之前,我们请您先 创建一个议题,解释 Bug 或功能请求,并告知我们您计划为其创建拉取请求。如果议题已存在,请在该议题上评论,告知我们您想为其提交拉取请求。这有助于我们跟踪拉取请求,并确保没有重复的工作。
-
在寻找可以修复的问题吗?请务必查看我们带有 help wanted 标签的议题!
环境设置
- 下载 Node.js LTS 版本的安装程序。这也是 安装 npm 的最佳方式。
- Fork Ionic 仓库。
- 克隆您的 Fork。
- 从 master 分支为您要做的更改创建一个新分支。
- 导航到您希望修改的包目录(core、angular 等)。
- 运行
npm install为此包安装依赖项。 - 按照下述特定包的步骤操作。
Core
修改组件
- 在
/core/src/components/中找到要修改的组件。 - 查阅 Stencil 文档 和其他组件,以了解这些组件的实现方式。
- 对组件进行更改。如果更改过于复杂或不寻常,请添加注释以便我们理解更改内容。
- 在本地 预览您的更改。
- 如果需要,修改文档。
- 对目录 运行代码检查 并确保没有错误。
- 构建项目。
- 构建完成后,提交更改。请为每次提交遵循 提交信息格式。
- 为您的更改 提交拉取请求。
预览更改
- 在
core目录中运行npm start。 - 浏览器应在
http://localhost:3333/打开。 - 从这里,导航到某个组件的测试页面以预览您的更改。
- 如果不存在显示您更改的测试,请 添加新测试或更新现有测试。
- 要在 RTL 模式下测试,进入所需组件的测试页面后,在 URL 末尾添加
?rtl=true;例如:http://localhost:3333/src/components/alert/test/basic?rtl=true。
代码检查
- 运行
npm run lint以检查 TypeScript 和 Sass。 - 如果有检查错误,运行
npm run lint.fix自动修复任何错误。重复步骤 1 以确保错误已修复,如果未修复则手动修复。 - 要仅检查并修复 TypeScript 错误,请分别运行
npm run lint.ts和npm run lint.ts.fix。 - 要仅检查并修复 Sass 错误,请分别运行
npm run lint.sass和npm run lint.sass.fix。
修改文档
- 在组件的目录中找到
readme.md文件。 - 修改此文件中标记为
<!-- Auto Generated Below -->的行之上的文档。 - 要更新该行以下的任何自动生成文档,请在以下位置进行相关更改:
Usage:在组件的usage/目录中更新组件的使用示例Properties、Events或Methods:更新组件的 TypeScript 文件(*.tsx)CSS Custom Properties:更新组件的主 Sass 文件(*.scss)