我们非常欢迎社区的开发者向 Taro 做出贡献。在提交贡献之前,请花一些时间阅读以下内容,保证贡献是符合规范并且能帮助到社区。
如果提交的是 Bug 报告,请务必遵守 Bug report
模板。
如果提交的是功能需求,请在 issue 的标题的起始处增加 [Feature request]
字符。
你需要保证你的 Node.js 版本大于 12
基于 yarn workspace。
$ yarn
# 全局编译
$ yarn build # 等价于 lerna run build
# 编译某个子包,如 `@tarojs/cli`
$ lerna run build --scope=@tarojs/cli
可以分为三种情况:
应该尽量把子包的 devDependencies 作为根目录的 devDependencies,从而安装在根目录。 如果版本遇到冲突,可以安装在子包内。
# 新增
$ yarn add -W -D <dependency>
# 删除
$ yarn remove -W -D <dependency>
# 为某个子包(如 @tarojs/cli)新增一个依赖
$ yarn workspace @tarojs/cli add <dependency>
# 为某个子包(如 @tarojs/cli)删除一个依赖
$ yarn workspace @tarojs/cli remove <dependency>
# 如遇到报错 "expected workspace package to exist for",请使用 [email protected] 再尝试。
# 相关 issues:
# - https://github.com/yarnpkg/yarn/issues/7807
# - https://github.com/yarnpkg/yarn/issues/7734
$ npx [email protected] workspace @tarojs/cli add <dependency>
# 新增
$ yarn workspaces add <dependency>
# 删除
$ yarn workspaces remove <dependency>
# 包括删除根目录的 node_modules 和所有 workspace 里的 node_modules
$ npm run clear-all
$ lerna run <script-name> --scope=<workspace> --stream
$ yarn run version --lerna_version=<version>
$ git add .
$ git commit -m "chore(release): publish <version>"
整个 Taro 仓库遵从 Angular Style Commit Message Conventions,在输入 commit message 的时候请务必遵从此规范。
JavaScript
:JavaScript 风格遵从 JavaScript Standard Style。TypeScript
:TypeScript 风格也是 JavaScript Standard Style 的变种,详情请看相关包目录下的tslint.json
和tsconfig.json
。- 样式:遵循相关包目录下的
.stylelintrc
风格。
- 务必保证
npm run build
能够编译成功; - 务必保证提交的代码遵循相关包中的
.eslintrc
,.tslintrc
,.stylelintrc
所规定的规范; - 当相关包的
package.json
含有npm test
命令时,必须保证所有测试用例都需要通过; - 当相关包有测试用例时,请给你提交的代码也添加相应的测试用例。
- 提交代码 commit 时,commit 信息需要遵循 Angular Style Commit Message Conventions。
- 如果提交的代码非常多或功能复杂,可以把 PR 分成几个 commit 一起提交。我们在合并时会根据情况 squash。
感谢以下所有给 Taro 贡献过代码的开发者:
同时欢迎各位贡献者加入 Taro 开发者社区