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