kaola-fed / megalo-aot

MIT License
9 stars 5 forks source link

config 配置管理 #24

Open fengzilong opened 5 years ago

fengzilong commented 5 years ago

给集中式页面配置补充一些功能建议:

  1. 能够配置公共的config。因为在实际使用过程中,有很多页面要用到相同的第三方小程序组件,如果在每个页面的config里写usingComponents太繁琐了。
  2. 能够在页面级组件mpType: 'page'里配置config,即:
    • xx.vue
      export default {
      mpType: 'page',
      config: {
      ...
      }
      }

优先级:页面vue组件的 config > 页面的 config > 公共的 config,并且三者会合并。

来源:https://github.com/kaola-fed/megalo-aot/issues/12#issuecomment-442293841

F-loat commented 5 years ago

很赞,建议在 App.vue 中通过以下方式指定公共 config,每次提取后缓存起来,和其他页面的配置进行合并

<config global>
...
</config>

页面的 config 属性我这边做过一个实现,只能支持静态代码解析,如果要支持 mixin 之类的估计会复杂很多,而且不是太有必要,有公共配置应该基本就可以满足需求了

fengzilong commented 5 years ago

我也是这么想的,有个项目级别的公用 config,拿来和 page 的 config 进行合并基本就够用了

b2nil commented 5 years ago

config 可以支持一下用 yaml 来写。

<config lang='yaml'>
---   
pages:
    - pages/index
subpackages:
    -
     root: packageA
     pages:
        - pages/test
    -
     root: pages/packageB
     pages:
        - pages/test
window:
    backgroundTextStyle: light
    navigationBarBackgroundColor: '#fff'
    navigationBarTitleText: demo
    navigationBarTextStyle: black
</config>
F-loat commented 5 years ago

开发者工具 1.02.1810190 及以上版本支持在 app.json 中声明 usingComponents 字段,在此处声明的自定义组件视为全局自定义组件,在小程序内的页面或自定义组件中可以直接使用而无需再声明。

微信官方已经支持全局组件了,这样全局配置其实意义也不是很大了,lang 属性倒是可以考虑支持掉

fengzilong commented 5 years ago

但像支付宝小程序好像还不支持,还是需要支持下,现在小程序的标准不一致,简直就是当年的 IE6😂

F-loat commented 5 years ago

而且小程序估计很难有个统一的标准来规范。。

fengzilong commented 5 years ago

@b2nil config 支持指定 lang 的特性,请升级到 @megalo/target@0.5.5

b2nil commented 5 years ago

👍👍👍