<commit_before># Vimo
---

就目前来看，移动端H5的业务需求希望同样的页面能够在微信、支付宝、普通浏览器或者自建的App内部WebView中运行，因此使用一套代码完成上述需求。


![](./static/VIMO(H5).png)


从技术实现角度是没问题的，但是在维护层面会有些难度，需要在业务代码中插入很多环境判断的代码，这个和职责分离的设计思想相分离，故Vimo就是为了解决这个问题而开发。

Vimo的设计思想来源于IONIC2.x，通过研读源码并结合当前的问题，上述的问题是按照这个思路解决的：

![](./static/layer-structure.png)

App在运行之前，完成对当前运行环境的初始化，这部分由`config + plarform`完成，不同的平台配置及初始化通过`platform-config.js`完成。`app-config.js`完成业务层面的配置。


Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。<commit_msg>说明提交a<commit_after># Vimo
---

就目前来看，移动端H5的业务需求希望同样的页面能够在微信、支付宝、普通浏览器或者自建的App内部WebView中运行，因此使用一套代码完成上述需求。


![](./static/VIMO(H5).png)


从技术实现角度是没问题的，但是在维护层面会有些难度，需要在业务代码中插入很多环境判断的代码，这个和职责分离的设计思想相分离，故Vimo就是为了解决这个问题而开发。

Vimo的设计思想来源于IONIC2.x，通过研读源码并结合当前的问题，上述的问题是按照这个思路解决的：

![](./static/layer-structure.png)

App在运行之前，完成对当前运行环境的初始化，这部分由`config + plarform`完成，不同的平台配置及初始化通过`platform-config.js`完成。`app-config.js`完成业务层面的配置。


Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
Vimo只安装必要的组件，模块根据需要自行安装。
{'fraction_non_alphanumeric': 0.11918367346938775, 'fraction_numerical': 0.004897959183673469, 'mean_word_length': 12.622222222222222, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7400366', 'n_tokens_mistral': 998, 'n_tokens_neox': 1138, 'n_words': 32}