UNPKG

jgb-cli

Version:

```shell npm i -g jgb-cli #全局安装 ```

76 lines (70 loc) 2.27 kB
import chalk from 'chalk'; import * as program from 'commander'; import * as pkg from '../package.json'; import { builder, clean, init } from './command'; program.version((pkg as any).version, '-v, --version'); program .command('build [input...]') .description('build project') .option( '-d, --out-dir <path>', 'set the output directory. defaults to "dist"' ) .option('-w, --watch', 'setup watch mode') .option('-s, --source <source>', 'set the origin project type', /^(wx)$/) .option( '-t, --target <target>', 'set the build type, either "wx", "aliapp" or "swan". defaults to "wx"', /^(wx|aliapp|swan)$/ ) .option('--no-cache', 'set this build system do not use cache') .option('--cache-dir <path>', 'set the cache directory. defaults to ".cache"') .option('-m, --minify', 'minify asset') .action(builder) .on('--help', () => { console.log(); console.log(' Example:'); console.log(); console.log(chalk.gray(' # build with watch')); console.log(' $ jgb build --watch'); console.log(); console.log( chalk.gray( ' # build without cache (default with cache in [.cache] folder)' ) ); console.log(' $ jgb build --no-cache'); console.log(); }); program .command('clean') .description('clean project dist and cache dir') .action(clean); program .command('init <template-name> [project-name]') .description('generate a new project from a template') .action(init) .usage('<template-name> [project-name]') .option('-c --clone', 'use git clone') .option('--offline', 'use cached template') .on('--help', () => { console.log( ' <template-name> rule please follow https://github.com/flipxfx/download-git-repo' ); console.log(); console.log(' Example:'); console.log(); console.log( chalk.gray(' # create a new project from gitlab with custom origin') ); console.log( ' $ jgb init gitlab:mygitlab.com:flipxfx/download-git-repo-fixture#my-branch' ); console.log(); console.log( chalk.gray(' # create a new project straight from a github template') ); console.log(' $ jgb init username/repo my-project'); console.log(); }); program.parse(process.argv);