minapp
重新定义微信小程序的开发
官网: qiu8310.github.io/minapp/
作者: Mora
使用
用 npm 安装命令行工具:
npm install -g @minapp/cli
初始化项目:
minapp init <你要创建项目的文件夹>
(同时支持创建 js 和 ts 项目)
安装两个 vscode 插件: minapp 和 dot-template(可选, 但建议安装)
功能概览 (在 vscode 编辑器下)
wx 所有接口都有智能的提醒, 同时包括接口的参数, 和返回值
提供一个 promise 版的 wx 接口 wxp, 和 wx 一样, 只是它会将 wx 中所有需要 success/fail/complete 三个参数的函数 promise 化
wxp 中也支持使用 success 回调
wxp 给 Promise 添加了一个 finally 方法; 如, 你可以这样用
wxp.getUserInfo().finally(() => { /* do something */ })
集成 mobx, 可以非常方便的修改全局数据, 并自动更新当前页面状态
注入 Store 只需要在 appify 函数中添加 Store 对象即可
Page 和 Component 中都默认注入了 Store 对象, 你可以使用 this.store 获取
wxml 模板语言支持语法高亮, 组件智能提示, 组件属性智能提示 (需要安装 vscode 插件 minapp)
json 文件支持自动提示
新建一个 page 文件夹时, 自动生成相关文件 (需要安装 vscode 插件 dot-template)
自动为你创建相关的同名的文件, 包括 js/json/wxml/sCSS, 并且这些模板文件你可以随时在 .dtpl 文件夹下修改
自动将新建的 page 路径注入到 app.json 文件夹中
小程序 Page 中支持函数自动提示
同理, 新建组件文件夹时, 也会创建相关的文件; 同时组件中的生命周期函数也会自动提示
关于此仓库说明
这不是一个项目, 是有好几个项目组合而成的, 用的是 lerna 开发工具, 其它项目在 packages 目录下, 这里对其中的几个主要项目做个简要概述
minapp-generator: 此模块负责解析微信官方文档, 生成结构化的数据, 供其它模块使用
minapp-core: 微信所有原生 api 的 TypeScript 定义, 另外提供一个 promise 版的 wx 接口
minapp-mobx: 开发框架, 集成 mobx
minapp-compiler: 一个小程序的编译器, 集成 webpack 和 webpack-dev-server
minapp-webpack-utils: 编译器中需要使用的 webpack 相关的插件
minapp-cli: 提供给用户的命令行工具, 集成了 minapp-compiler, 并可以快速创建一个新项目
minapp-vscode: vscode 插件, 为 wxml 提供语法高亮标签与属性的自动补全
TODO
[ ] 小程序中的静态资源自动上传到 七牛 (完成我的 file-uploader 组件)
[ ] 实现类似于 vue 的功能, 可以将所有文件写在一个页面上
[ ] webpack 升级到 4.0
[ ] 写一个小程序的自动化测试框架
来源: https://juejin.im/post/5a9b5b10f265da239866b826