1 | #!/usr/bin/env node
|
2 | const path = require('path')
|
3 | const fs = require('fs-extra')
|
4 | const program = require('commander')
|
5 | const chalk = require('chalk')
|
6 | const build = require('../dist/build').default
|
7 | const { targetReset } = require('../dist/build/target')
|
8 | const { PROJECT_CONFIG } = require('../dist/util/constants')
|
9 | const appPath = process.cwd()
|
10 | const projectConfPath = path.join(appPath, PROJECT_CONFIG)
|
11 |
|
12 | program
|
13 | .option('--type [typeName]', '运行编译类型,device:真机 simulator:模拟器')
|
14 | .option('--debug', 'debug模式运行,支持热更新')
|
15 | .option('--target [targetName]', '重置target,device:真机 simulator:模拟器')
|
16 | .option('--env [env]', 'Env type')
|
17 | .option('--port [port]', 'Specified port')
|
18 | .parse(process.argv)
|
19 |
|
20 | const { type, debug, port } = program
|
21 | let { env } = program
|
22 |
|
23 | env = process.env.NODE_ENV || env
|
24 |
|
25 | if (!fs.existsSync(projectConfPath)) {
|
26 | console.log(
|
27 | chalk.red(
|
28 | `找不到项目配置文件${PROJECT_CONFIG},请确定当前目录是SyberOS-Hybrid项目根目录!`
|
29 | )
|
30 | )
|
31 | process.exit(1)
|
32 | }
|
33 |
|
34 | // 检查是否需要重置target
|
35 | targetReset(appPath, program)
|
36 |
|
37 | if (env) {
|
38 | process.env.NODE_ENV = env
|
39 | } else {
|
40 | if (debug) {
|
41 | process.env.NODE_ENV = 'development'
|
42 | } else {
|
43 | process.env.NODE_ENV = 'production'
|
44 | }
|
45 | }
|
46 |
|
47 | process.env.SYBEROS_ENV = type
|
48 |
|
49 | const projectConf = require(projectConfPath)
|
50 |
|
51 | console.log(chalk.green(`开始编译项目 ${chalk.bold(projectConf.projectName)}`))
|
52 |
|
53 | build(appPath, {
|
54 | type,
|
55 | debug,
|
56 | port: typeof port === 'string' ? port : undefined
|
57 | })
|