ModuleCompiler
简介
KISSY Module Compiler(kmc)是一个基于NodeJS的KISSY模块打包工具,目前适用于KISSY 1.2+的代码打包
如果您有任何问题,请邮件或者来往(daxingplay)上联系我,阿里巴巴厂内用户还可以联系紫英。
特点
- 支持GruntJS,参见grunt-kmc.
- 基于NodeJS,相比于KISSY自带的Java工具,打包快速
- 参照浏览器端的KISSY的config进行配置,无需额外知识,只需要改一下包路径即能快速打包
- 支持混合编码打包,不同的包可以使用不同的编码
- 支持GBK输出
- 支持KISSY 1.3的自动combo功能,可以生成依赖关系文件
- 提供底层依赖分析接口,方便集成到其他工具当中
- 支持map功能,可以使用正则自由替换输出的模块名
版本说明
- 0.0.7版本适用于KISSY 1.2、1.3的打包,目前已经在淘宝多个业务广泛使用,单纯打包没有任何问题,但是不具备依赖分析生成功能,此版本已经不再维护,推荐使用新版本。
- 1.0.0版本开始支持KISSY 1.3的自动combo功能,推荐使用
使用
安装
npm install kmc
or
git clone git://github.com/daxingplay/kmc.git
注意: 新版本的KISSY Module Compiler的npm包已经更名为kmc,如果使用老版本(此版已经不再维护),请npm install module-compiler
编写你的打包脚本
var kmc = require('kmc');
kmc.config({
packages: [{
'name': 'sh',
'path': '这里建议写绝对路径,即sh这个包所在的目录',
'charset': 'gbk'
}]
});
kmc.build('xxx.js', 'xxx.combine.js', 'gbk');
高级使用指南
var kmc = require('kmc');
kmc.config({
packages: [{
'name': 'app1',
'path': 'app1这个包所在目录的绝对路径',
'charset': 'gbk'
}, {
'name': 'app2',
'path': 'app2这个包所在目录的绝对路径',
'charset': 'utf-8'
}],
exclude: ['base', 'event'],
ignoreFiles: ['.combo.js', '-min.js'],
suffix: '',
map: [
['app1/2.0/', 'app1/19891014/']
],
charset: 'gbk'
});
kmc.build({
src: 'xxx.js',
dest: 'xxx.combine.js',
outputCharset: 'gbk'
});
更详细的文档,请参见wiki。
API汇总
配置
配置包,返回当前所有配置信息。如果不带参数,直接返回当前所有配置信息。
kmc.config(cfg);
分析依赖
只分析该文件依赖,不打包。
kmc.analyze(src);
打包
打包函数,具体见wiki
kmc.build({
src: '\xxx\xxx\src\a.js',
dest: '\xxx\xxx\build\a.js',
outputCharset: 'gbk',
depPath: '\xxx\xxx\dep.js'
});
生成依赖
不打包,只生成KISSY 1.3的自动combo依赖文件
kmc.combo({
src: '',
dest: '',
depPath: '',
depCharset: '',
fixModuleName: '',
showFullResult: ''
});
获取依赖
kmc.info(inputFile)
清空配置
可以清空config中的设置。因为ModuleCompiler是单例运行,所以如果出现一些特别情况,可以在config前执行clean方法清空之前的配置。
kmc.clean();
CHANGELOG
版本更新记录
License
遵守 "MIT":https://github.com/daxingplay/kmc/blob/master/LICENSE.md 协议