发表日期:2018-07 文章编辑:小灯 浏览次数:1228
基于Gulp构建的微信小程序开发工作流
目前开发微信小程序时,可选的技术方案大概有四种,分别是:
三种开发方案,各有优劣。使用第三方框架开发,可以享受框架带来的开发便利,但对于小程序新增的诸多特性和功能,比如WXS模块、自定义组件和插件等,受制于第三方框架,无法使用。
而原生小程序的开发模式,又过于简陋,就样式来说,写惯了less,stylus和sass的同学一定无法忍受wxss的这种写法,基于此,决定使用gulp自动化工具来构建一套微信小程序开发的基础模板,在完全保留微信小程序功能和特性的基础上,又可以的使用less来写样式,同时加入图片压缩,命令行快速创建模板等特性,如此开发,快哉,快哉!
github走起
gulp+less构建的微信小程序工程项目page、template和component $ npm install --global gulp-cli $ git clone https://github.com/YangQiGitHub/wx-miniprogram-boilerplate.git $ cd wx-miniprogram-boilerplate && npm install $ npm run dev gulp auto -p mypage 创建名为mypage的page文件 gulp auto -t mytpl创建名为mytpl的template文件 gulp auto -c mycomponent创建名为mycomponent的component文件 gulp auto -s index -p mypage复制pages/index中的文件创建名称为mypage的页面 $ npm run build wx-miniprogram-boilerplate ├── dist // 编译后目录 ├── node_modules // 项目依赖 ├── src│├── components // 微信小程序自定义组件 │├── images // 页面中的图片和icon │├── pages// 小程序page文件 │├── styles // ui框架,公共样式 │├── template // 模板 │├── utils// 公共js文件 │├── app.js │├── app.json │├── app.less │├── project.config.json // 项目配置文件 │└── api.config.js // 项目api接口配置 ├── .gitignore ├── package-lock.json ├── package.json └── README.md Tasks: dev开发编译,同时监听文件变化 build整体编译clean清空产出目录 wxml 编译wxml文件(仅仅copy) js 编译js文件,同时进行ESLint语法检查 json 编译json文件(仅仅copy) wxss 编译less文件为wxss img编译压缩图片文件 watch监听开发文件变化auto 自动根据模板创建page,template或者component(小程序自定义组件)gulp auto 选项: -s, --srccopy的模板 [字符串] [默认值: "_template"] -p, --page 生成的page名称 [字符串] -t, --template 生成的template名称 [字符串] -c, --component生成的component名称[字符串] --msg显示帮助信息 [布尔]示例: gulp auto -p mypage 创建名为mypage的page文件 gulp auto -t mytpl创建名为mytpl的template文件 gulp auto -c mycomponent创建名为mycomponent的component文件 gulp auto -s index -p mypage复制pages/index中的文件创建名称为mypage的页面 Q: 为什么工作流中没有加入js转换,样式补全以及代码压缩?
A: 微信开发者工具中自带babel将ES6转ES5,样式补全以及js代码压缩等功能,在此工作流中不做额外添加。
image Q: _template目录的文件有什么用?
A: 使用gulp auto命令自动生成文件,-s参数可以指定copy的对象,默认情况下是以对应目录下文件夹为_template中的文件为copy对象的。开发者可以根据业务需求,自定义_template下的文件。
Q: _template目录的文件是否会被编译到dist目录?
A: 不会。
将持续更新,如果有新的建议,欢迎创建Issue或发送PR,感谢你的支持和贡献。