选择 weapp-start 进行开发的主要理由之一就是一切扩展功能全部组件化,可以随意组合,打造合适自己的开发环境
配合状态管理工具 weappx,再复杂的小程序也可以轻松应
小程序早已原生支持组件化开发,体验下来老牌组件化框架在升级过程中非常不顺利,所以选择使用原生语法进行开发,但是同时有很多非常棒的特性,我希望能保留下来,因此有了这个项目
-
如果你只是开发一款好用的 小程序,单纯使用 小程序官方文档和规范,我建议你可以尝试本项目,它对于原生小程序开发体验有非常棒的提升
-
如果你熟悉 react,并且准备一处编写,多端适配,那么我推荐你使用 taro
- 支持 npm 包引入
- 支持 promise, async/await 等最新语法
- 支持多种编译器,如 pug/less/stylus
- 支持 ESlint
- 支持本地 mock 数据
- 支持一键生成项目,组件模版
- 支持发布前资源压缩
- 支持自定义插件
- 多种工具,加速开发
npm i weapp-start -g
查看帮助
weapp-start -h
weapp-start <command> [options]
命令:
weapp-start dev watch build
weapp-start build 打包构建
weapp-start init 生成模版项目
weapp-start new 生成模板页面
weapp-start mock 启动本地mock服务
选项:
-h, --help 显示帮助信息 [布尔]
-v, --version 显示版本号 [布尔]
生成开发模版(项目模板都存放在这里,欢迎小伙伴 pr)
weapp-start init
进入生成目录,安装依赖
npm i
启动实时编译
weapp-start dev
使用微信开发者工具新建项目,项目目录选择刚刚生成的文件夹,会自动导入项目配置
-
weapp-plugin-require
是基于commonJS
模块规范的静态处理,也就是说es6
模块定义的话,需要配合weapp-plugin-babel
插件使用,weapp-plugin-babel
的顺序要在它之前。 -
小程序里面对于
require('common.js')
是当做相对路径的,而在 node 中是作为模块查找的,因此应该避免这种隐式的相对路径写法,应该用require('./common.js')
代替;weapp-plugin-require
对二者做了兼容,不过会发出提示信息要求修改路径 -
weapp-plugin-jsmin
只能对 es5 规范的代码进行压缩,将其顺序至于weapp-plugin-babel
之后 -
所有压缩功能的插件,如果想对生成的额外文件进行处理,需要指定参数
extra
为true
-
因为小程序的特有运行环境,在兼容外部 npm 包,比如 lodash 的时候,需要做一些 hack 操作,替换文本,但是它们更新太频繁了,精力不够,所以请在主项目锁死版本 lodash 版本号
"lodash": "4.17.5"
自定义插件文档 coming...
- weapp-plugin-babel - 集成 babel,可以使用最新的 js 语法,而不必担心兼容
- weapp-plugin-eslint - 集成 eslint,自动检测代码规范
- weapp-plugin-less - 集成 less,使用 less 语法编写 wxss
- weapp-plugin-pug - 集成 pug,使用 pug 语法编写 wxml
- weapp-plugin-require - 分析依赖,导入第三方 npm
- weapp-plugin-stylus - 集成 stylus,使用 stylus 语法编写 wxss
- weapp-plugin-filter - 过滤文件
- weapp-plugin-jsmin - 压缩 js
- weapp-plugin-filemin - 压缩 xml,json,css
- weapp-plugin-imgmin - 压缩图片
- weapp-plugin-postcss - 集成 postcss,可以使用最新的 css 语法和特效,而不必担心兼容
- weapp-plugin-replace - 文本替换
- ...
- weapp-util-create-plugin - 创建插件的工具方法
- weapp-util-requestfix-promisify - 原生小程序所有api进行promise化;优化并发请求数量
- weapp-util-watch-computed - 使原生小程序支持 watch,computed 属性
- ...
- Contribution
- Updatelog - 查看
packages/xxx/CHANGELOG.md