UNPKG

fis-postpackager-map

Version:

76 lines (46 loc) 1.5 kB
/** * @author nuer * @email nuersir@gmail.com * @time 2015.07.10 * @description 处理map.json, 支持多模块, 并约定展示页面对应路径下的业务逻辑文件 */ 'use strict'; // 收集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 ); } }); };