UNPKG

2.67 kBJavaScriptView Raw
1#!/usr/bin/env node
2var over = require('../lib/lib/utils/overwrite-require');
3over.register()
4var commander = require('commander');
5var nps = require('path')
6var pkg = require('../package.json')
7var parsePkg = require('../lib/lib/utils/parse-query');
8var Picidae = require('../lib');
9
10commander
11 .version(pkg.version)
12
13commander
14 .command('init [path]')
15 .description('The first step of picidae')
16 .action(function (path) {
17 require('./picidae-init')(path)
18 })
19
20commander
21 .command('start')
22 .description('start a webpack server for development.')
23 .option('-c --config [file]', 'set config path. (default `./picidae.config.js`)')
24 // .option('--quick-hot', 'enable quick hot mode. (NOTE: maybe cause the meta data such as `title` can\'t be updated.)')
25 // .option('--ssr', 'turn on ssr')
26 .action(function (opts) {
27 require('./picidae-start')(opts)
28 })
29
30
31commander
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
44commander
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
52commander
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
60commander
61 .command('list')
62 .description('list the packages which you are installed by `picidae use`')
63 .action(function () {
64 require('./picidae-list')()
65 })
66
67var config = {}
68try {
69 var defaultConfigPath = nps.resolve('./picidae.config.js')
70 config = require(defaultConfigPath);
71 config = Picidae.assignOption(config);
72} catch (ex) {}
73
74try {
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
86commander.parse(process.argv);
87