Skip to content

Instantly share code, notes, and snippets.

@fouber
Last active August 29, 2015 14:01
Show Gist options
  • Save fouber/725bd528c7471632af65 to your computer and use it in GitHub Desktop.
Save fouber/725bd528c7471632af65 to your computer and use it in GitHub Desktop.
fis core
/*******************************************
* 实际使用展示,用户配置文件 fis-conf.js
*******************************************/
//后缀映射
fis.config.merge({
roadmap : {
ext : {
coffee : 'js',
less : 'css',
styl : 'css',
md : 'html'
}
}
});
//流程配置
fis.config.merge({
modules : {
parser : {
coffee : processCoffee,
less : processLess,
styl : processStylus,
md : processMarkdown
},
optimizer : {
js : uglifyJS,
css : cleanCSS,
html : htmlMinifier
},
postpackager : [ concatJS, concatCSS, insertHtml ]
}
});
//fis的核心代码
//获取所有源码文件
var files = fis.getAllFiles();
//加载用户配置
require('./fis-conf.js');
//准备构建结果集
var ret = {
src : {},
pkg : {}
};
//遍历构建
files.forEach(function(file){
if(file.release){
var ext = file.ext;
var rExt = roadmap.ext[ext] || ext;
if(file.cache()){ //判断构建缓存是否失效
file.pipe(modules.parser[ext])
.pipe(modules.preprocessor[rExt])
.pipe(fis.standard) //处理三种语言能力
.pipe(modules.postprocessor[rExt])
.pipe(modules.lint[rExt])
.pipe(modules.test[rExt])
.pipe(modules.optimzier[rExt])
.cache(); //建立构建缓存
}
//收集
ret.src[file.subpath] = file;
}
});
//打包
modules.prepackager(ret);
modules.packager(ret);
modules.spriter(ret);
modules.postpackager(ret);
//发布
fis.deploy(ret.src);
fis.deploy(ret.pkg);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment