提交 a2ebf0c4 编写于 作者: Q qiang

docs: 增加贡献指南

上级 5061f561
# uni-app 贡献指南
## 环境搭建
* 需要安装 [Node.js](http://nodejs.org/) 12+,以及 [yarn](https://yarnpkg.com/en/docs/install)
* 克隆仓库到本地后,执行 ```yarn ``` 安装开发依赖。
## 开发
* packages 目录无需编译。
* src 目录需执行命令编译到目标平台,如:```yarn build:mp-weixin```
* 执行 ```yarn lint``````yarn lint:cli``` 分别检查运行时和编译器代码风格。
* 执行 ```yarn test:unit``````yarn test:cli``` 分别运行运行时和编译器的测试。
## 测试
* 需要安装 Vue CLI 4.x。
```
npm install -g @vue/cli@4
```
* 创建 uni-app 测试工程。
```
vue create -p dcloudio/uni-preset-vue#alpha uniapp-test
```
* 从本地安装改动过的依赖。
```
yarn add @dcloudio/%包名%@%uni-app本地仓库路径%/packages/%包名%
```
* 编写测试代码。
* 编译到对应平台进行测试。
## 提交 PR
* fork 本仓库,在自己仓库基于 dev 分支创建专用分支用于提交更改。
* commit 规范遵循 Vue 仓库 [Git Commit Message Convention](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md)
* 提交之前确保进行了完善的测试。
* 确保 PR 提交到 dev 分支。
* 修复 Bug 请提供详细的描述信息,或链接到对应的 issue。
* 提交新功能请阐明起用途以及提交到主仓库的必要性。除抹平不同平台 API 与组件差异的功能外,最好事先仓库主要成员商议后再进行。
## 项目结构
* build:编译脚本
* lib:其他编译依赖
* dist:其他编译后的文件
* docs:~~文档目录~~ ,现已迁移
* examples:~~示例目录~~,现已迁移
* packages:编译器以及编译后的运行时
* uni-automator:自动化测试依赖包
* uni-cli-i18n:国际化依赖包(编译器)
* uni-cli-shared:编译器共享包
* uni-i18n:国际化依赖包(运行时)
* uni-migration:小程序组件到 Vue 组件的转换工具
* uni-h5:H5 平台运行时依赖包
* dist:编译后的文件
* uni-app-plus:App 平台依赖包
* dist:编译后的文件
* template:预编译以及静态文件依赖
* lib:App平台编译选项和其他编译依赖
* uni-app-plus-nvue:App(nvue)平台依赖包
* uni-mp-weixin:微信小程序平台依赖包
* dist:微信小程序运行时编译后的文件
* lib:微信小程序编译选项和其他编译依赖
* uni-mp-alipay:支付宝小程序平台依赖包
* uni-mp-baidu:百度小程序平台依赖包
* uni-mp-qq:QQ小程序平台依赖包
* uni-mp-toutiao:字节小程序平台依赖包
* uni-mp-kuaishou:快手小程序平台依赖包
* uni-mp-jd:京东小程序平台依赖包
* uni-mp-lark:飞书小程序平台依赖包
* uni-quickapp-native:快应用平台依赖包
* uni-quickapp-webview:快应用平台依赖包
* uni-template-compiler:模板编译器
* __tests__:单元测试
* lib:编译依赖
* vue-cli-plugin-hbuilderx:[Vue CLI 插件](https://cli.vuejs.org/zh/dev-guide/plugin-dev.html),用于处理 HBuilderX 环境
* vue-cli-plugin-uni:[Vue CLI 插件](https://cli.vuejs.org/zh/dev-guide/plugin-dev.html),用于配置 [webpack](https://webpack.js.org/concepts/) 等编译选项,部分配置在用户项目内可以被 [vue.config.js](https://cli.vuejs.org/zh/config/#vue-config-js) 覆盖
* bin
* commands
* lib
* packages:内置依赖包
* mp-vue:小程序平台使用的 Vue 依赖,由仓库 [fxy060608/vue](https://github.com/fxy060608/vue) 编译。
* vue-cli-plugin-uni-optimize:Vue CLI 插件,主要处理 H5 平台摇树优化
* webpack-uni-mp-loader:webpack loader,用于生成小程序平台的各种文件
* webpack-uni-pages-loader:webpack loader,用于解析 pages.json
* lib
* platforms:平台差异实现
* h5
* app-plus
* mp-weixin
* uni-stat:uni统计依赖包
* src:运行时源码目录
* assets:静态资源
* core:运行时公共部分
* helpers
* runtime
* service:逻辑层(App、H5)
* api:uni 接口实现(App、H5 平台公共部分)
* bridge:逻辑层和视图层通讯桥
* plugins
* view:视图层(App、H5)
* bridge:逻辑层和视图层通讯桥
* components:组件实现(App、H5 平台公共部分)
* mixins
* plugins
* platforms:各平台运行时差异实现部分
* h5:H5 平台运行时
* components:H5 平台框架内部组件实现
* helpers
* runtime
* service
* api:uni 接口实现(H5 平台)
* view
* bridge
* components:组件实现(H5 平台)
* app-plus:App 平台运行时
* helpers
* runtime
* service
* api:uni 接口实现(App 平台)
* view
* api
* bridge
* components:组件实现(App 平台)
* framework
* mixins
* app-plus-nvue:App(nvue)平台运行时
* mp-weixin:微信小程序平台运行时
* helpers
* runtime
* api:对 wx 对象部分方法对输入输出参数进行处理以抹平各平台差异
* wrapper:对微信小程序的 App、Page、Component 进行包装,以将小程序原生组件实例和 Vue 组件实例进行绑定
* mp-alipay:支付宝小程序平台运行时
* mp-baidu:百度小程序平台运行时
* mp-qq:QQ小程序平台运行时
* mp-toutiao:字节小程序平台运行时
* mp-kuaishou:快手小程序平台运行时
* mp-jd:京东小程序平台运行时
* mp-lark:飞书小程序平台运行时
* quickapp-native:快应用平台运行时
* quickapp-webview:快应用平台运行时
* shared
* test:单元测试(运行时)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册