配置规范校验

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文件所在层级,不写后缀。例子:

  1. {
  2. "base": {
  3. "usingComponents": {
  4. "c-scroller": "chameleon-ui-builtin/components/scroller/scroller",
  5. "c-checkbox": "/components/c-checkbox/c-checkbox"
  6. }
  7. },
  8. "wx": {
  9. "navigationBarTitleText": "index",
  10. "backgroundTextStyle": "dark",
  11. "backgroundColor": "#E2E2E2"
  12. },
  13. "alipay": {
  14. "defaultTitle": "index",
  15. "pullRefresh": false,
  16. "allowsBounceVertical": "YES",
  17. "titleBarColor": "#ffffff"
  18. },
  19. "baidu": {
  20. "navigationBarBackgroundColor": "#ffffff",
  21. "navigationBarTextStyle": "white",
  22. "navigationBarTitleText": "index",
  23. "backgroundColor": "#ffffff",
  24. "backgroundTextStyle": "dark",
  25. "enablePullDownRefresh": false,
  26. "onReachBottomDistance": 50
  27. },
  28. }
  29. ## chameleonjson规范
  30. 包括以下三条:
  31. 1. 满足标准的json格式规范,满足JSON.parse的解析
  32. - 数据在名称/值对中
  33. - 数据由逗号分隔
  34. - 花括号保存对象
  35. - 方括号保存数组
  36. 2. chameleon json为对象,必须包括base字段,根据适配的平台可配置wx|alipay|baidu|web|weex字段,作为单一端上的特殊配置
  37. ```javascript
  38. // 适配微信小程序和weex
  39. {
  40. "base": {
  41. },
  42. "wx": {
  43. },
  44. "alipay": {
  45. },
  46. "baidu": {
  47. },
  48. "weex": {
  49. }
  50. }
  • usingComponents使用规范:
    多端实现完全一致组件:

usingComponents字段必须放置在base下,不应出现wx|alipay|baidu|web|weex字段中

多端实现不一致组件:

usingComponents字段可以放置在base下,也可以在出现当前端对应的wx|alipay|baidu|web|weex字段中

注:多端实现完全一致组件 和 多端实现不一致组件 的说明可参见这