Skip to content

cavinHuangORG/easy-miniprogram

 
 

Repository files navigation

easy miniProgram 简单小程序开发脚手架

本脚手架并不是通过深度封装的方式提供小程序新的开发模式,旨在解决核心的关键痛点,而其他需要的功能,可以通过增强补丁的方式添加到脚手架中,因为就目前而言,小程序官方的版本更新频率十分频繁,一些缺失的功能在未来或许会得到官方的支持,而我们补丁的这些功能,也可以在未来较为容易的移除,使用官方的支持方案。

构建设置

# 安装依赖 (不建议使用淘宝的 cnpm,最好使用npm 5.0以上锁定版本install)
npm install
# 或者
cnpm install

# 开发环境 启动开发环境,同时会启动一个 静态服务器
# localhost:8083
npm run dev

# �生产环境
npm run build

微信开发者工具中,开发环境导入dist目录即可, 其他环境根据配置的 output属性导入目录。

解决的核心问题

  • 构建环境区分:目前大部分项目要求都会区分 开发、测试、预生产、生产环境等多个环境,添加多环境支持,并将环境变量注入到项目中,方便开发使用。
  • 静态文件服务器:小程序虽然有提供 腾讯云 等服务工具,但在开发阶段,有时候静态文件在本地管理效率更高,同时也可以扩展为 接口代理。
  • 路径解析替换: 查找文件中的路径,比如查找图片路径,并根据环境,替换域名,此功能的主要目的是静态文件在不同的环境下的存储位置不通,方便开发者无需在每个路径做环境区分。
  • 变量注入:在项目中注入各种可能在不同环境下不同的变量。
  • 模块引用路径别名:由于小程序本身分为了各种不同的文件,有些可能层级较深,在做文件引用时,很容易写错路径,浪费时间,引入 路径别名,以更简短的路径导入文件,提升开发效率以及体验。
  • 引入 css预编译:以比较友好的方式编写css。
  • 分包加载配置:新增分包加载配置,简化分包加载配置复杂度。

扩展的一些功能

所有扩展的功能统一在 lib 目录中管理。

  • wxios:使用axios的风格进行异步请求,具体见模块中的 readme.md
  • observer: 类vue的方式更新数据,从而不必使用setData
  • wxp:对wx对象的二次封装,具体见模块中的说明。
  • es6-promise: 主要是添加 finally() 的支持。
  • unLoadPage: 给当前页面实例增加页面前进和后退两个方法。

所有扩展并不是统一注入,而是在需要的模块去引用声明。

项目目录

.
├── LICENSE
├── build # gulp构建目录
├── config # 配置目录
│   ├── alias.js # 别名配置
│   └── index.js # 配置文件入口
├── src # 开发目录
│   ├── app.js # 小程序入口文件
│   ├── app.json # 小程序配置文件
│   ├── app.wxss # 小程序 wxss 文件
│   ├── common #公共功能模块,管理功能功能模块,与业务交互有一定相关的模块
│   ├── components # 公共组件目录
│   ├── lib # 扩展管理目录
│   ├── project # 子项目模块管理
│   │   └── demo # 具体的业务模块
│   │       ├── components # 业务模块私有组件
│   │       ├── services # 子项目服务管理
│   │       └── views # 子项目视图管理
│   ├── project.config.json # 小程序配置文件
│   ├── services #公共服务
│   ├── stylus # 公共样式库
│   │   └── common.styl
│   └── utils # 工具库
└── static # 静态资源管理
    └── images

About

简单的小程序开发脚手架

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.3%
  • CSS 0.7%