Skip to content

Latest commit

 

History

History
151 lines (137 loc) · 6.03 KB

CONTRIBUTING.md

File metadata and controls

151 lines (137 loc) · 6.03 KB

uni-app 贡献指南

环境搭建

  • 需要安装 Node.js 12+,以及 yarn
  • 克隆仓库到本地后,执行 yarn 安装开发依赖。

开发

  • packages 目录无需编译。
  • src 目录需执行命令编译到目标平台,如:yarn build:mp-weixin
  • 执行 yarn lintyarn lint:cli 分别检查运行时和编译器代码风格。
  • 执行 yarn test:unityarn test:cli 分别运行运行时和编译器的测试。

测试

  • 需要安装 Vue CLI 4.x。

    npm install -g @vue/cli@4
    
  • 创建 uni-app 测试工程。

    vue create -p dcloudio/uni-preset-vue#alpha uniapp-test
    
  • 从本地安装改动过的依赖,由于部分包对软链兼容不佳,暂不推荐使用 npm link 方式。

    yarn add @dcloudio/%包名%@%uni-app本地仓库路径%/packages/%包名%
    
  • 编写测试代码。

  • 编译到对应平台进行测试。

提交 PR

  • fork 本仓库,在自己仓库基于 dev 分支创建专用分支用于提交更改。
  • commit 规范遵循 Vue 仓库 Git Commit Message Convention
  • 提交之前确保进行了完善的测试。
  • 确保 PR 提交到 dev 分支。
  • 修复 Bug 请提供详细的描述信息,或链接到对应的 issue。
  • 提交新功能请阐明起用途以及提交到主仓库的必要性。除抹平不同平台 API 与组件差异的功能外,最好事先仓库主要成员商议后再进行。

项目结构

  • build:编译脚本
  • lib:其他编译依赖
    • apis.js 参与编译的接口列表
    • modules.json 摇树优化接口类别划分
  • 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 插件,用于处理 HBuilderX 环境
    • vue-cli-plugin-uni:Vue CLI 插件,用于配置 webpack 等编译选项,部分配置在用户项目内可以被 vue.config.js 覆盖
      • bin
      • commands
      • lib
      • packages:内置依赖包
        • mp-vue:小程序平台使用的 Vue 依赖,由仓库 fxy060608/vue#dev 编译。
    • 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
        • i18n:国际化资源文件
        • protocol:App、H5 平台接口通用校验
      • 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:单元测试(运行时)