微信小程序脚手架及html转译GUI工具

微信小程序出现引发了很多讨论,许多开发者都跃跃欲试尝试了小程序的开发。它重新定义了自身的一套开发规范,对于现有的html页面是不支持了。

为此我们设想了一套方案,怎么最快速的把现有的开发流接入到小程序中,并能快速的修改现有html项目以符合微信小程序的规范?于是写了一套html暴力转译成wxml的方案,以及搭配了初始模板的脚手架。结构沿用feWorkflow,大部分改动是针对目录的gulp工作流。

1. 脚手架

小程序有一套默认的文件结构,根目录下必须存放有以下3个文件:

.
├──app.js
├──app.json
├──app.wxss

而页面则由4个文件构成:

.
├──js
├──wxml
├──wxss
├──json

根据这套规则,通过GUI工具新建的模板,这个脚手架会默认创建一个源码src目录:

点击开发 ,会创建dist文件目录,将编译后的less(或在设置中配置成sass)文件转换成wxss文件,其他html,js, css文件的更改也会同步处理到dist目录中,图片资源则会通过imagemin进行压缩,抛出到dist/image目录中。src源码目录和dist目录(两者均可以通过配置项修改名称)的划分是为了保持源代码的完整性,以及维持图片的原始文件(psd等),而不会在编译过程中被破坏。

到目前的微信开发者工具的版本(0.10.101100),已经附带自动刷新页面的功能,所以src目录中的所有改动,会同步修改dist目录下的文件并刷新,可以无缝在熟悉的编辑器中进行操作。

脚手架示例:
新建项目:

开发项目:

HTML to WXML转译工具

demo:

1.目录结构

上文提到了小程序有默认的一套脚手架结构,编译工具会将源码目录下的所有html文件进行转译,并创建一个当前目录名-build的文件夹,将所有编译后的wxml存放到page/文件名/文件名.wxmlapp.json全局配置的pages也会默认创建。根据创建的目录名,将同名的css文件,重命名为wxss文件,并存放到同名目录中,当css与文件名不符,则合并不符的css文件,存放到全局目录的app.wxss中。而因为小程序不再支持jQuery等等通用库,源码目录下的js会全部忽略,页面级的js,则会复制到同名目录中,这个js则包括注册页面的Page函数基础模板。

举个例子:
源码test目录文件结构如下

├──test
|   └──css
|       └──index.css
|       └──global.css
|   └──js
|       └──index.js
|   └── index.html
|   └── other.html

编译后的目录结构会改变为:

├──test-build
|   └──app.wxss
|   └──page
|       └── index
|           └── index.wxml
|           └── index.wxss
|           └── index.js
|       └── other
|           └── other.wxml

2. HTML

先来看一下wxml和html的标签大致的对比图:

根据图中标签的的匹配规则,在编译过程中,遍历html文件,先转换成xml,保证img等包含闭合标签,再通过正则匹配符合的标签来替换或者删除。这个替换标签可以在设置中更改。
举个例子:

<!-- html -->
<div class="flow-form_tips">
  <div class="address">
    <span>广东联通</span>
    <span>立即生效</span>
    <span>月底失效</span>
    <span>全国可用</span>
  </div>
  <p class="desc">河南联通维护中,流量充值缓慢</p>
  <div class="tips hide">当地运营商维护中,请稍后再试</div>
</div>

编译后:

<!-- wxml -->
<view class="flow-form_tips">
  <view class="address">
  <text>广东联通</text>
  <text>立即生效</text>
  <text>月底失效</text>
  <text>全国可用</text></view>
  <view class="desc">河南联通维护中,流量充值缓慢</view>
  <view class="tips hide">当地运营商维护中,请稍后再试</view>
</view>

3. css

尺寸单位
小程序推出了自身的计量单位rpx,并推荐使用750的设计稿作为开发标准,而目前组内开发普遍使用640的设计稿进行设计,同时使用rem进行适配。
所以在转义过程中,添加了设计稿尺寸的设置,默认设置,是640设计稿,100px计算rem,默认乘以2倍。
这个设置的意思是:我们在开发过程中使用640的设计稿,并使用rem兼容,iphone4屏幕320px的html font-size为100px,css中表现为:640 / 2 / 100rem, 即640px == 3.2rem;
css中会去遍历所有匹配rem的属性,获取数值,通过(match * fontSize * (750 / viewport)).toFixed(2) * times来计算rpx,即(匹配数值 * fontSize * (750 / 640)).toFixed(2) * 2
而px转rpx则是由(match * (750 / viewport) * times).toFixed(2)来转换。

wxss支持大部分css的属性,但是仍有些情况下不兼容,但编译工具没有做处理,免得出现误删的情况,假如页面中写了a选择器,则需要手动改成navigator选择器。

4. image

所有png|jpg|gif|svg格式图片统一进行压缩并复制到个目录下的image目录中,并将wxml中image的src,和wxss中的background-url修改为../../image/

写在最后

小程序的开发语言已经与日常开发的语言有所不同,一套通用的方案已经是不可行了,还是有很多东西需要手工去处理,比如template等。转译工具是在内部的产品环境下测试的,可能会有许多考虑不周的地方,欢迎大家斧正。

下载:

github
mac: feWorkflow-wechat-app-v0.0.1.dmg
windows: feWorkflow-wechat-app-win.7z

原文地址:https://www.cnblogs.com/homehtml/p/12588731.html

时间: 2024-11-11 00:39:22

微信小程序脚手架及html转译GUI工具的相关文章

原生微信小程序脚手架(支持npm)

微信小程序支持npm 为了支持生态扩展,社区贡献者可以提供更加丰富的功能,已经支持了第三方小程序开发功能,见如下地址. 微信小程序支持npm https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html 从小程序基础库版本 2.2.1 或以上.及开发者工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装第三方包. 此文档要求开发者们对 npm 有一定的了解,因此不会再去介绍 npm 的基本功能.如若之前未

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序购物商城系统开发系列-工具篇

微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将给予微信小程序进行研发.基于对它的敬畏以及便于大家快速上手,特整理微信小程序商城开发系列,未来将持续增加微信小程序技术文章,让大家可全面了解如何快速开发微信小程序商城. 本篇文章主要介绍微信小程序官方提供的开发工具,俗话说:欲工善其身,必先利其器. 小程序开发文档地址https://mp.weixi

微信小程序内测申请

想申请微信小程序的内测?别做梦了! 小程序内测是邀请制的,目前就发放了200个内测邀请.正因为稀缺,江湖传言内测资格已经炒到300万(一套房)一个了 但是!!!!你可以先熟悉一下相关资料和文档,下载一个开发工具在自己电脑上玩一下,虽然部分功能受到了限制,但是还是挺有意思的! 小程序开发过程中遇到的各种坑 摘要: 本文收集微信小程序.应用号开发过程中的各种坑,以及疑难问题.不定期整理解决方案. 如果你在开发过程中遇到了问题,请将你的问题在评论中回复,我会不定期整理. 本文收集微信小程序.应用号开发

快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app.这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈.这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路,不

微信小程序开发流程

2017年1月9日,张小龙在2017微信公开课Pro上发布的小程序正式上线,一夜之间,小程序可谓家喻户晓,但通过接下来的几个月的观察,微信小程序并没有想象中的那么火爆.进入4月以来,微信小程序团队进行了多次发文调整,并放开了个人公众号快速注册小程序能力.不管未来如何,微信小程序已经在发力了,作为一名码农,咱还是先了解下小程序的开发流程及规范,以备不时之需! 按照惯例,学习一门新技术或者新框架,咱们还是从官方提供的文档开始,于是找到微信小程序官方教程(https://mp.weixin.qq.co

微信小程序购物商城系统开发系列

微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将给予微信小程序进行研发.基于对它的敬畏以及便于大家快速上手,特整理微信小程序商城开发系列,未来将持续增加微信小程序技术文章,让大家可全面了解如何快速开发微信小程序商城. 本篇文章主要介绍微信小程序官方提供的开发工具,俗话说:欲工善其身,必先利其器. 小程序开发文档地址

微信小程序开发工具测评

1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下来一起来看看测评吧. 一.微信小程序官方开发工具 注意,它只是个工具,而不是一个IDE.官方工具中的代码编辑功能,就是将vscode的代码编辑功能嵌入到工具中,不足以支撑开发. 优点 因为是官方工具所以有这其它第三方工具有这不可比拟的天然优势,如果不是他代码编辑功能太弱的话. 官方工具,可调试,可预

微信小程序开发的入门教程

广州微信小程序开发公司(www.dthulian.com)品向科技,下面跟大家详细介绍微信小程序开发的入门教程: 开发前准备: 注册小程序帐号 绑定开发者 登录微信公众平台小程序,进入用户身份- 开发者,新增绑定开发者. 已认证的小程序可以绑定不多于20个开发者.未认证的小程序可以绑定不多于10个开发者. 获取AppID下载并安装开发者工具 下载完成后,使用管理员或者绑定的开发者微信号扫码登录. 一个微信小程序 创建项目 我们需要通过开发者工具,来完成小程序创建和代码编辑. 开发者工具安装完成后