UNPKG

1.34 kBJavaScriptView Raw
1#!/usr/bin/env node
2const cac = require('cac').default
3const pkg = require('../package')
4
5const { input, flags } = cac.parse(process.argv.slice(2))
6
7if (flags.version || flags.v) {
8 console.log(pkg.version)
9 process.exit()
10}
11
12const {
13 config: configFile,
14 baseDir,
15 inspectWebpack,
16 progress,
17 debug,
18 debugTrace,
19 cleanOutDir,
20 jsx,
21 clearConsole,
22 open,
23 ...configData
24} = flags
25
26delete flags.help
27delete flags.version
28
29// Only for development purpose
30// `require-so-slow` is installed in root directory
31if (debugTrace) {
32 // eslint-disable-next-line import/no-extraneous-dependencies
33 const requireSlow = require('require-so-slow')
34 process.on('exit', () => {
35 console.log('Writing require-trace.trace')
36 requireSlow.write('require-trace.trace')
37 })
38}
39
40if (jsx) {
41 process.env.POI_JSX = jsx
42}
43
44const command = input.shift()
45// Poi config, that can override data in your config file
46// Assigned to poi
47const config = Object.assign(
48 { entry: input.length > 0 ? input : undefined },
49 configData
50)
51
52// App options, assigned to poi.options
53const options = {
54 configFile,
55 baseDir,
56 command,
57 cleanOutDir,
58 inspectWebpack,
59 progress,
60 debug,
61 clearConsole,
62 open
63}
64
65const poi = require('../lib')
66
67const app = poi(options, config)
68app.run().catch(err => {
69 console.error(err.stack)
70 process.exit(1)
71})