UNPKG

@ygyg/yg-cli

Version:

A simple CLI for front-end engineering automation construction tool.

62 lines (47 loc) 1.87 kB
// gulpfile.js YGUI Web Gulp 工作流 const gulp = require('gulp'); const fs = require('fs'); const yargs = require('yargs'); // const knownOptions = { // default: { // env: process.env.NODE_ENV || 'production', // cfg: '', // }, // }; // const options = minimist(process.argv.slice(2), knownOptions); // mix.util.log(yargs.argv); const options = yargs.argv; // const myCfg = options.cfg ? '-' + options.cfg : ''; const myCfg = options.cfg ? options.cfg.split(',') : ''; const myChannel = options.channel ? options.channel.split(',') : ''; const isDebug = !!options.debug; const mix = new (require('./Mix.js'))(gulp); // 载入基础任务 const basicTaskPath = 'basicTasks'; const combinedTaskPath = ''; const basicTaskPathFilterCallback = file => file.match(/js$/); // 排除非 JS 文件,如 Vim 临时文件 mix.util.log('当前项目运行的 文件夹: ' + mix.util.colors.green(myCfg)); const complex = require('./complex')(gulp, mix, myCfg, myChannel, isDebug); mix.complex = complex; fs.readdirSync(basicTaskPath) .filter(basicTaskPathFilterCallback) .sort() .forEach(file => { require('./' + basicTaskPath + '/' + file)(gulp, mix, myCfg); }); // 载入复合任务 // 载入 watch 任务 require('./' + combinedTaskPath + '/watch')(gulp, mix); // 载入自定义任务 if (mix.config.customTasks) { Object.keys(mix.config.customTasks).forEach(customTaskName => { require('./' + mix.config.customTasks[customTaskName])(gulp, mix); }); } // 载入 start 和 initProject 任务 ['start', 'initProject'].forEach(file => { require('./' + combinedTaskPath + '/' + file)(gulp, mix); }); gulp.task('build', gulp.series('clean', 'initBuild')); gulp.task('resultVerify', gulp.series('initVerifyJson', 'initVerifyFolders')); // , 'validFolder' // gulp.task('resultVerify').description = '验证文件夹build结果';