配置规范校验
CML文件配置规范的校验,包括语法格式,组件的引用等。
说明
wx、alipay、baidu、web、weex分别对应各端构建时所应用的配置信息,base的配置会应用到每一端的配置,内部做的result = merge(base,target)。
wx字段配置的内容最终会生成到微信小程序所需要的json文件。
wx.component字段,如果在微信中该cml文件是组件必须声明该字段。usingComponents字段是目前最重要的配置,三端都会使用,微信小程序规定页面的json文件中配置使用到的组件。web和weex端的构建时也是根据该字段去找到相应的组件进行自动化的注册。所以用到组件必须进行配置usingComponents中组件的引用地址支持引用src和node_modules下的组件,src下的,可以写相对路径,也可以写相对于src的绝对路径,例如/components/**, node_modules下的组件,不需要写node_modules,直接从npm的包名称开始写例如cml-test-ui/navi/navi。 路径写到.cml文件所在层级,不写后缀。例子:
{
"base": {
"usingComponents": {
"c-scroller": "chameleon-ui-builtin/components/scroller/scroller",
"c-checkbox": "/components/c-checkbox/c-checkbox"
}
},
"wx": {
"navigationBarTitleText": "index",
"backgroundTextStyle": "dark",
"backgroundColor": "#E2E2E2"
},
"alipay": {
"defaultTitle": "index",
"pullRefresh": false,
"allowsBounceVertical": "YES",
"titleBarColor": "#ffffff"
},
"baidu": {
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "white",
"navigationBarTitleText": "index",
"backgroundColor": "#ffffff",
"backgroundTextStyle": "dark",
"enablePullDownRefresh": false,
"onReachBottomDistance": 50
},
}
## chameleonjson规范
包括以下三条:
1. 满足标准的json格式规范,满足JSON.parse的解析
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
2. chameleon json为对象,必须包括base字段,根据适配的平台可配置wx|alipay|baidu|web|weex字段,作为单一端上的特殊配置
```javascript
// 适配微信小程序和weex
{
"base": {
},
"wx": {
},
"alipay": {
},
"baidu": {
},
"weex": {
}
}
- usingComponents使用规范:
多端实现完全一致组件:
usingComponents字段必须放置在base下,不应出现wx|alipay|baidu|web|weex字段中
多端实现不一致组件:
usingComponents字段可以放置在base下,也可以在出现当前端对应的wx|alipay|baidu|web|weex字段中
注:多端实现完全一致组件 和 多端实现不一致组件 的说明可参见这