1 | #!/usr/bin/env node
|
2 |
|
3 | function interopRequireDefault(obj) {
|
4 | return obj && obj.__esModule ? obj : {
|
5 | default: obj,
|
6 | };
|
7 | }
|
8 |
|
9 | const jest = require('jest');
|
10 | const program = require('commander');
|
11 | // const chalk = require('chalk');
|
12 | const build = require('../lib/build');
|
13 | const buildInit = interopRequireDefault(require('../lib/build-init')).default;
|
14 | const createComponent = interopRequireDefault(require('../lib/create-component')).default;
|
15 |
|
16 | const _build = interopRequireDefault(build).default;
|
17 |
|
18 | program
|
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 |
|
37 | program.parse(process.argv);
|
38 | program.cwd = process.cwd();
|
39 |
|
40 | // 快速创建组件
|
41 | if (program.component) {
|
42 | createComponent(program);
|
43 | return;
|
44 | }
|
45 |
|
46 | // 模版初始化
|
47 | if (program.init) {
|
48 | buildInit(program);
|
49 | return;
|
50 | }
|
51 |
|
52 | // watch 模式
|
53 | if (program.watch) {
|
54 | _build(program);
|
55 | return;
|
56 | }
|
57 |
|
58 | // 测试模式
|
59 | if (program.test) {
|
60 | jest.run();
|
61 | return;
|
62 | }
|
63 |
|
64 | // 开发/生产模式
|
65 | if (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 | }
|