UNPKG

fdm

Version:

基于gulp的1688前端集成化工具

104 lines (85 loc) 3.28 kB
/** * dongming.jidm */ 'use strict'; var spawn = require('win-spawn'); var path = require('path'); var colors = require('colors'); var fs = require('fs'); var nopt = require('nopt'); module.exports = { help: function() { p(_help()); }, run: function(argv) { var knownOpts = { "source": String, "dest": String, "appname": String, "localcommondir": String, "help": Boolean }; var shortHands = { "s": ["--source"], "d": ["--dest"], "an": ["--appname"], "lcd": ["--localcommondir"], "h": ["--help"] } var parsed = nopt(knownOpts, shortHands, argv); if(parsed.argv.original.length === 1 || parsed.help) { this.help(); return; } var sourceDir = path.resolve(parsed.source || './'); var destDir = path.resolve(parsed.dest || path.join(sourceDir, 'dest')); var gulpfile = path.join(__dirname,'../configs/build-config.js'); var baseModulePath = path.resolve(__dirname,'../','node_modules'); var appname = parsed.appname || 'qingguo'; var localCommonDir = parsed.localcommondir || ' '; if( !fs.existsSync(sourceDir) ) { p('[ERROR]'.red, '你提供的目录不存在,请检查'); p('windows下的目录格式为:', 'D:\\\\aaa\\\\bbb\\\\ccc'.yellow, '或者', 'D:/aaa/bbb/ccc'.yellow); p('linux下的目录格式为:', 'Users/dongming/aaa/bbb/ccc'.yellow); return; } // console.log('正在更新最新的编译环境...'); // var buildcli = spawn('npm',['update','fdm','-g']); // buildcli.stderr.on('data', function(data){ // console.log('' + data); // }); // buildcli.stdout.on('data', function(data){ // console.log('' + data); // }); // buildcli.on('close',function(){ // p('正在执行build任务队列...'); // spawn('node', [baseModulePath+'/gulp/bin/gulp','pcbuild','--source',sourceDir,'--dest',destDir, '--appname', appname, '--localcommondir', localCommonDir, '--gulpfile', gulpfile], { // stdio: 'inherit' // }); // }); p('正在执行build任务队列...'); spawn('node', [baseModulePath+'/gulp/bin/gulp','pcbuild','--source',sourceDir,'--dest',destDir, '--appname', appname, '--localcommondir', localCommonDir, '--gulpfile', gulpfile], { stdio: 'inherit' }); } }; function _help() { return [ ' Useage: fdm build [-s source]', ' [-d dest]', ' [-an appname]', ' [-lcd localcommondir]', ' [-h help]', '', ' Options:', '', ' -s | --source 要编译的目录,默认为当前目录', ' -d | --dest 输出目录,默认在编译目录中新建dest目录', ' -an | --appname 要编译的应用名', ' -lcd | --localcommondir 公共资源需要从本地目录获取的,指定公共资源目录', ' -h | --help 打印帮助信息' ].join('\n'); } function p() { console.log.apply(console, arguments); }