Version: 下个版本

CONTRIBUTING

我们非常欢迎社区的开发者向 Taro 做出贡献,我们的共建倡议《Taro 邀你加入社区共建》

  • 提交 RFC 或者查看相关的 RFC,你可以查看 taro-rfcs 仓库
  • 分享你的案例,只需提交小程序码、二维码,你可以提交到 taro-user-cases
  • 分享你的 “轮子” (SDK、组件、UI、项目)你可以提交到 物料市场
  • 分享你的经验(开源项目、教程、文章)你可以提交到 wesome-taro 或者给 「Taro社区」公众号投稿

在代码提交贡献之前,你需要花一些时间阅读以下内容,保证贡献是符合规范并且能帮助到社区。

Taro 组成#

NPM 包描述
babel-preset-taro给 Taro 项目使用的 babel preset
@tarojs/taro暴露给应用开发者的 Taro 核心 API
@tarojs/sharedTaro 内部使用的 utils
@tarojs/api暴露给 @tarojs/taro 的所有端的公有 API
@tarojs/taro-h5暴露给 @tarojs/taro 的 H5 端 API
@tarojs/routerTaro H5 路由
@tarojs/react基于 react-reconciler 的小程序专用 React 渲染器
@tarojs/cliTaro 开发工具
@tarojs/extendTaro 扩展,包含 jQuery API 等
@tarojs/helper内部给 CLI 和 runner 使用辅助方法集
@tarojs/serviceTaro 插件化内核
@tarojs/taro-loader暴露给 @tarojs/mini-runner 和 @tarojs/webpack-runner 使用的 Webpack loader
@tarojs/runner-utils暴露给 @tarojs/mini-runner 和 @tarojs/webpack-runner 的公用工具函数
@tarojs/webpack-runnerTaro H5 端 Webpack 打包编译工具
@tarojs/mini-runnerTaro 小程序 端 Webpack 打包编译工具
@tarojs/componentsTaro 标准组件库,H5 版
@tarojs/taroizeTaro 小程序反向编译器
@tarojs/with-weapp反向转换的运行时适配器
eslint-config-taroTaro ESLint 规则
eslint-plugin-taroTaro ESLint 插件

Issue 报告指南#

如果提交的是 Bug 报告,请点击 New issue

如果你想为 Taro 实现一个重要功能,需要先撰写 RFC 文档,按照 Taro 的 RFC 机制进行操作,在经过社区讨论完善后才可以进行代码的提交。

开发配置#

你需要保证你的 Node.js 版本大于 8,把仓库 Clone 到本地。运行以下命令:

$ npm install # or yarn
$ npm run bootstrap
$ npm run build

提交 commit#

整个 Taro 仓库遵从 Angular Style Commit Message Conventions,在输入 commit message 的时候请务必遵从此规范。

代码风格#

  • JavaScript:JavaScript 风格遵从 JavaScript Standard Style
  • TypeScript:TypeScript 风格也是 JavaScript Standard Style 的变种,详情请看相关包目录下的 tslint.jsontsconfig.json
  • 样式:遵循相关包目录下的 .stylelintrc 风格。

Pull Request 指南#

  1. 务必保证 npm run build 能够编译成功;
  2. 务必保证提交到代码遵循相关包中的 .eslintrc, .tslintrc, .stylelintrc 所规定的规范;
  3. 当相关包的 package.json 含有 npm test 命令时,必须保证所有测试用例都需要通过;
  4. 当相关包有测试用例时,请给你提交的代码也添加相应的测试用例;
  5. 提交代码 commit 时,commit 信息需要遵循 Angular Style Commit Message Conventions
  6. 如果提交到代码非常多或功能复杂,可以把 PR 分成几个 commit 一起提交。我们在合并时会会根据情况 squash。

Credits#

感谢以下所有给 Taro 贡献过代码的开发者: