别名机制
所谓别名机制,即可以将任意模块名,映射成其他名称,比如一个模块名 bee-demo/a,因为第三方的需要,需要定义成 bee-demo/b,如何操作呢?
KISSY.config('modules',{
'bee-demo/b':{
alias:['bee-demo/a']
}
});
业务模块 require('bee-demo/b') 等价于 require('bee-demo/a')。
modules 别名配置经常应用于公共模块管理,项目负责人可以统一指定所使用公共模块的版本并且方便统一升级, 而具体开发者则可以不用关心使用模块的版本信息。
比如 bee-demo 项目中引用了二个组件,组件的模块名称中包含版本号信息,像kg/offline/2.0.0/index,但我们不希望在业务模块 require 时带有版本号,require('kg/offline/index'),那么如何配置呢?
KISSY.config('modules',{
'kg/offline/index':{
alias:['kg/offline/2.0.0/index']
},
'kg/auth/index':{
alias:['kg/auth/2.0.0/index']
}
});
这样,我们就可以在一处地方维护公共模块的版本,方便统一升级。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>alias</title>
<script src="//g.alicdn.com/kissy/k/1.4.7/seed-min.js" charset="utf-8" data-config="{combine:true}"></script>
</head>
<body>
<script>
KISSY.config('modules',{
'bee-demo/b':{
alias:['bee-demo/a']
}
});
KISSY.add('bee-demo/a',function(S ,require, exports, module){
var Node = require('node');
Node.all('body').html('bee-demo/b 等价于 bee-demo/a');
});
KISSY.use('bee-demo/b');
</script>
</body>
</html>