webpack+avalon+mmState打包方案

终于到讲授如何整合avalon社区这个最强大的组件,基于状态机的路由系统了!

基于状态机的路由系统,据我所知,目前世界上只有三款,angular社区的ui-router, 网易出品的stateman, avalon社区的mmState!

mmState最初是我写的,基于mmRouter上扩展出来,到0.4版时只有400行,后来经过我同事参考ui-router,迅速爆涨到1000行,满足各方面的需求(这其中,社区上也有不少人贡献代码)。因此现在让我重拾mmState的源码,我也几乎看不懂。。。。

之前mmRouter 有一个小BUG,切换视图时会执行两次回调,这个我修了不小心又引发mmState不可用,因此本例请使用最新的0.9版。

mmState 0.9的下载地址

avalon则还是建议使用1.4.*或1.5.*的最新版本

我们沿着上一篇项目的目录,这次要将mmState, mmPromise都要拷贝过来!

现在目录变成这个样子:

我们看一下这个页面吧(state.html)

<!DOCTYPE html>
<html>
    <head>
        <title>mmState组件</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <script src="dist/common.js"></script>
        <script src="dist/state.js"></script>
    </head>
    <body ms-controller="test">