ala-cli
Version:
aladdin develop utils
60 lines (46 loc) • 1.24 kB
JavaScript
/**
*
* @file fis3编译:release php/js/smarty
* @author chenrui09
* @date 2017/5/4
*
*/
const path = require('path');
let dirRoot = process.cwd();
let appConf = require(path.join(dirRoot, 'app.conf'));
let releaseConf = appConf.release;
let pluginsPath = '../plugins/';
let modules = appConf.modules;
let rules = releaseConf.rules;
let prepackager = releaseConf.prepackager;
// 默认不执行编译
fis.match('**', {
release: false
});
// 动态规则匹配
for (let key in rules) {
let rule = rules[key];
let fisMatch = path.normalize(modules[rule.module] + '/(' + rule.match + ')');
let fisParams = {};
fisParams.release = '$0';
fisParams.useHash = !!rule.useHash;
if (rule.optimizer) {
// to-do
}
fis.match(fisMatch, fisParams);
}
// 处理AMD模块
fis.hook('amd', {});
// 处理预打包
if (prepackager) {
let handler;
// 判断是否有路径匹配符
if (/\//.test(prepackager)) {
handler = require(path.join(dirRoot, prepackager));
} else {
handler = require(pluginsPath + prepackager);
}
fis.match('::package', {
prepackager: handler
});
}