Skip to content
luyongfugx edited this page Sep 24, 2013 · 21 revisions

增量更新原理请看:js增量更新方案

###在需要这个插件的页面里面引入plugin-storeinc.js

<script src="../sea-modules/seajs/seajs/2.1.1/sea-debug.js"></script>

//引入plugin-storeinc.js

<script src="../sea-modules/seajs/seajs/2.1.1/plugin-storeinc.js"></script>

<script>

// Set configuration

var version='1.0.6'

seajs.config({

base: "../sea-modules/",

alias: {

"jquery": "jquery/jquery/1.10.1/jquery.js"

}

});

seajs.use('plugin-storeinc', function(store) {

//关于增量更新的设置,

//store:true表示走本地存储

//inc:true 表示走增量更新

//jsver:本次的js版本

// aliasver: 设置了别名的js走自己的一个版本号,因为这部分基本很少改

// debug :是不是debug状态,如果是则走直接连接js的形式,不走本地存储和增量更新,方便调试

store.configStroreInc({'store':true,'inc':true,'jsver':version,'aliasver':'1.10.2','debug':false});

// For development

if (location.href.indexOf("?dev") > 0) {

seajs.use("../static/hello/src/main");

}

// For production

else {

seajs.use("examples/hello/"+version+"/main");

}

});

//然后安装适配增量更新插件的构建工具spm-storeinc-build

npm install spm-storeinc-build -g

新建文件package.json,内容如下:

{

"family": "examples",

"name": "hello",

//上一个版本号

"lastversion":"1.0.5",

//本次版本号,跟上次版本号的最后一位间隔为1才起增量作用

"version": "1.0.6",

//增量更新计算中的块大小,增量更新原理请看:js增量更新方案

"chunkSize":12,

"spm": {

`"alias": {`

 ` "jquery": "jquery"`

},

`"output": ["main.js", "style.css"]`

}

}

然后运行spm-storeinc-build,构建工具会根据package.json的定义把src目录下的静态文件根据sea的规则合并混淆到dist下,并保存在以当前版本为目录的目录下,另外如果保留了上个版本混淆后的代码,构建工具会根据文件的修改情况生成增量文件,前端在使用增量更新的情况下会使用增量文件和本地存储的上个版本内容合并成为新的内容

具体的例子请看demo目录下的 hello例子:

storeinc / demo / static / hello