-
Notifications
You must be signed in to change notification settings - Fork 64
3.2.Javascript编译过程
zhangwentao edited this page Jun 14, 2016
·
1 revision
在 Her 的编译过程中,Javascript 文件将经历以下几个阶段
jsWrapper 阶段会分析文件中的require('xxxx')所有同步依赖,给JS文件封装define函数,让这个JS文件符合AMD规范
例如
/*sidebar.js*/
exports.run = function(){
var $ = require('home:static/lib/js/jquery-1.10.1.js');
$('html').toggleClass('expanded');
};
编译后会变成
/*sidebar.js*/
define('home:widget/sidebar/sidebar.js',["global","module","exports","require","home:static/lib/js/jquery-1.10.1.js"],function(global, module, exports, require){
exports.run = function(){
var $ = require('home:static/lib/js/jquery-1.10.1.js');
$('html').toggleClass('expanded');
};
});
requireAnalyze 阶段会分析Javascript文件中的同步依赖和异步依赖关系,并添加到文件的依赖中,为之后输出依赖关系表作准备
jsExpand 阶段会扩展js语言的能力
这一阶段处理包括:
- 替换文件中的__inline('xxx')函数为xxx文件的内容
- 替换__uri('xxx')函数中的相对路径为线上引用的绝对路径