fis-postpackager-map
Version:
76 lines (46 loc) • 1.5 kB
JavaScript
/**
* @author nuer
* @email nuersir@gmail.com
* @time 2015.07.10
* @description 处理map.json, 支持多模块, 并约定展示页面对应路径下的业务逻辑文件
*/
;
// 收集map格式关联;
function collectMap( ret ) {
var map = {
res: {},
pkg: {}
};
// 收集ret.map中所有js关联;
fis.util.map(ret.map.res, function( id, res ) {
if ( 'js' !== res.type ) return ;
var r = map.res[ id ] = {};
if ( res.pkg ) {
r.pkg = res.pkg;
} else {
r.url = res.uri;
}
if ( res.deps ) r.deps = res.deps;
});
fis.util.map(ret.map.pkg, function( id, res ) {
var r = map.pkg[ id ] = {};
r.url = res.uri;
if ( res.deps ) r.deps = res.deps;
});
return map;
}
// 过滤, 返回当前页面所需的js、css;
function filterPageMaps( ret ) {
}
module.exports = function( ret, conf, settings, opt ) {
var map = collectMap( ret );
var stringify = JSON.stringify(map, null, opt.optimize ? null : 4);
fis.util.map(ret.src, function(subpath, file) {
// inner html resoureMap;
if (file.isViews && (file.isJsLike || file.isHtmlLike)) {
var content = file.getContent();
content = content.replace(/\b__FRAMEWORK_CONFIG__\b/g, 'require.resourceMap(' + stringify + ');');
file.setContent( content );
}
});
};