UNPKG

2.15 kBPlain TextView Raw
1#!/usr/bin/env node
2
3function interopRequireDefault(obj) {
4 return obj && obj.__esModule ? obj : {
5 default: obj,
6 };
7}
8
9const jest = require('jest');
10const program = require('commander');
11// const chalk = require('chalk');
12const build = require('../lib/build');
13const buildInit = interopRequireDefault(require('../lib/build-init')).default;
14const createComponent = interopRequireDefault(require('../lib/create-component')).default;
15
16const _build = interopRequireDefault(build).default;
17
18program
19 .version(require('../package').version, '-v, --version')
20 .option('-o, --output-path <path>', 'output path')
21 .option('-w, --watch [delay]', 'watch file changes and rebuild')
22 .option('-d, --dev', 'start develop server')
23 .option('-p, --port [port]', 'develop server port, default is 8080')
24 .option('-b, --build', 'build this project')
25 .option('-t, --test', 'test this project, use jest')
26 .option('-c, --component <component>', 'quickly create components')
27 .option('--pwa', 'use pwa')
28 .option('--hash', 'build with hash and output map.json')
29 .option('--publicPath <publicPath>', 'publicPath for webpack')
30 .option('--devtool <devtool>', 'sourcemap generate method, default is null')
31 .option('--config <path>', 'custom config path, default is webpack.config.js')
32 .option('--no-compress', 'build without compress')
33 .option('--json', 'running webpack with --json, ex. result.json')
34 .option('--verbose', 'run with more logging messages.')
35 .option('--init <template> <project>', 'generate a new project from a template. template: [vue, pages]');
36
37program.parse(process.argv);
38program.cwd = process.cwd();
39
40// 快速创建组件
41if (program.component) {
42 createComponent(program);
43 return;
44}
45
46// 模版初始化
47if (program.init) {
48 buildInit(program);
49 return;
50}
51
52// watch 模式
53if (program.watch) {
54 _build(program);
55 return;
56}
57
58// 测试模式
59if (program.test) {
60 jest.run();
61 return;
62}
63
64// 开发/生产模式
65if (program.dev || program.build) {
66 _build(program, (err) => {
67 if (err) {
68 process.exit(1);
69 }
70 process.exit(0);
71 });
72} else {
73 console.error('output usage information: qu-build -h');
74}