fdm
Version:
基于gulp的1688前端集成化工具
91 lines (76 loc) • 2.27 kB
JavaScript
var commander = require('commander');
var path = require('path');
var fs = require('fs');
require('colors');
var spawn = require('win-spawn');
var helper = require('./utils/helper');
var grunt = require('grunt');
var config = helper.getConfig();
var helpeInfo = function(){
console.log();
console.log('从模板构建项目');
console.log(' $', 'fdm init'.green, '[tplname]','[destdir]');
console.log();
console.log('执行项目常规任务');
console.log(' $', 'fdm start'.green, 'taskName');
console.log();
console.log('启动FdServer');
console.log(' $', 'fdm server'.green, 'start');
console.log();
// console.log('安装项目扩展');
// console.log(' $', 'fdm install'.green, 'html2js');
// console.log();
// console.log('项目发布(支持gitlab发布)');
// console.log(' $', 'fdm publish'.green);
// console.log();
// console.log('更新模板(开发中)');
// console.log(' $', 'fdm update'.green, 'templateName');
// console.log();
console.log('编译项目(与Aone编译脚本一致)');
console.log(' $', 'fdm build'.green, '[srcdir]', '[destdir]');
console.log();
console.log('部署盖娅环境');
console.log(' $', 'fdm gaea'.green);
console.log();
}
// 执行子命令
function executable(subcmd) {
var local = path.join(__dirname, '/command/'+subcmd+'.js');
if (fs.existsSync(local)) {
return local;
}else{
return false;
}
}
module.exports = {
run : function(argv){
commander
.version(require('./package.json').version)
// .option('-v, --version',"查看版本信息")
.option('-p, --plugin',"查看插件列表")
.option('-t, --template',"查看模板列表")
// create config file
helper.setConfig();
// Execute sub command
commander.parse(argv);
// var args = argv.slice(3);
var subcmd = commander.args[0];
if(commander.plugin){
console.log('获取插件列表中...'.green);
helper.getFdmRepo('fdmplugin');
}else if(commander.template){
console.log('获取模板列表中...'.green);
helper.getFdmRepo('fdmtemplate');
}else if (!subcmd) {
helpeInfo();
} else {
var bin = executable(subcmd);
if (bin) {
require(bin).run(argv);
}else{
require('./command/start').run(argv,true);
}
}
},
config:config
}