1 | #!/usr/bin/env node
|
2 | var over = require('../lib/lib/utils/overwrite-require');
|
3 | over.register()
|
4 | var commander = require('commander');
|
5 | var nps = require('path')
|
6 | var pkg = require('../package.json')
|
7 | var parsePkg = require('../lib/lib/utils/parse-query');
|
8 | var Picidae = require('../lib');
|
9 |
|
10 | commander
|
11 | .version(pkg.version)
|
12 |
|
13 | commander
|
14 | .command('init [path]')
|
15 | .description('The first step of picidae')
|
16 | .action(function (path) {
|
17 | require('./picidae-init')(path)
|
18 | })
|
19 |
|
20 | commander
|
21 | .command('start')
|
22 | .description('start a webpack server for development.')
|
23 | .option('-c --config [file]', 'set config path. (default `./picidae.config.js`)')
|
24 |
|
25 |
|
26 | .action(function (opts) {
|
27 | require('./picidae-start')(opts)
|
28 | })
|
29 |
|
30 |
|
31 | commander
|
32 | .command('build')
|
33 | .description('build static pages for production.')
|
34 | .option('-c --config [file]', 'set config path. (default `./picidae.config.js`)')
|
35 | .option('-f --force', 'force build Mode: will EMPTY previous build files.')
|
36 | .option('--no-spider', 'disable smart spider mode')
|
37 | .option('--no-ssr', 'disable Server Side Render mode')
|
38 | .option('--no-sw', 'disable Service Worker(Offline) mode')
|
39 | .option('--source-map', 'enable source map')
|
40 | .action(function (opts) {
|
41 | require('./picidae-build')(opts)
|
42 | });
|
43 |
|
44 | commander
|
45 | .command('use <package...>')
|
46 | .description('install <package>, we recommend use the command in global')
|
47 | .action(function (pkgs) {
|
48 | if (!pkgs.length) return
|
49 | require('./picidae-use')(pkgs)
|
50 | })
|
51 |
|
52 | commander
|
53 | .command('unuse <package...>')
|
54 | .description('uninstall <package>, we recommend use the command in global')
|
55 | .action(function (pkgs) {
|
56 | if (!pkgs.length) return
|
57 | require('./picidae-unuse')(pkgs)
|
58 | })
|
59 |
|
60 | commander
|
61 | .command('list')
|
62 | .description('list the packages which you are installed by `picidae use`')
|
63 | .action(function () {
|
64 | require('./picidae-list')()
|
65 | })
|
66 |
|
67 | var config = {}
|
68 | try {
|
69 | var defaultConfigPath = nps.resolve('./picidae.config.js')
|
70 | config = require(defaultConfigPath);
|
71 | config = Picidae.assignOption(config);
|
72 | } catch (ex) {}
|
73 |
|
74 | try {
|
75 | var commanders = config.commanders || [];
|
76 | commanders = commanders.map(function (path) {
|
77 | return parsePkg(path, 'picidae-commander-');
|
78 | });
|
79 | commanders.forEach(function (ent) {
|
80 | require(ent.path)(commander, ent.opt, Object.assign({}, config), require);
|
81 | })
|
82 | } catch (ex) {
|
83 | console.error(ex)
|
84 | }
|
85 |
|
86 | commander.parse(process.argv);
|
87 |
|