QzoneTouch/commonWidget

请问一下manifest.js什么时候去load回来的?

Opened this issue · 4 comments

我看到源代码是:

var remoteManifest = (data.localcache && data.localcache.manifest) || {} 

但你个部署时是用了:

var remoteManifest = require("manifest");

且:

 map: [[/(v4\/manifest.js)$/i, "$1?v=" + Math.random().toString().substr(10)]]

我想问一下这样做,

var remoteManifest = (data.localcache && data.localcache.manifest) || {} 

是不是想用户在config里配置manifest?

远端manifest设计里是通过config传递的,但是你完全可以稍微修改代码,让插件自己去拉取manifest。看实际应用场景。
设计config传递是用于manifest内容跟随页面一起输出的情况。

嗯嗯,我这边也是自己拉取manifes�t适合一点。

还请教个问题,manifest文件的内容,你们应该也是自动生成的吧,比如用 grunt 生成md5版本?

是手工填的,有改成自动生成的计划。

@woc2006 我已经改成自动生成了,用了grunt的一个插件:https://npmjs.org/package/grunt-cachebuster

cachebuster: {
    options: {
        basedir: '../common/js',
        length: 10,
        formatter: function(hashes) {
            var output = "define('apm/manifest', [], function(){ var mod = ";
            output += JSON.stringify(hashes);
            output += ";var manifest = {}; for(var key in mod){ manifest['http://m.aipai.com/mobile/common/js/'+key] = mod[key] }; return manifest; });";
            return output;
        }
    },
    mobile: {
        src: ['../common/js/mobile/**/*.js', '../common/js/apm/*.js'],
        dest: '../common/js/apm/manifest.js'
    }
}