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/index').default
|
7 | const { targetReset } = require('../dist/build/target')
|
8 | const { PROJECT_CONFIG } = require('../dist/util/constants')
|
9 | const { log } = require('../dist/util/log')
|
10 | const appPath = process.cwd()
|
11 | const projectConfPath = path.join(appPath, PROJECT_CONFIG)
|
12 |
|
13 | program
|
14 | .option('--type [typeName]', '运行编译类型,device:真机 simulator:模拟器')
|
15 | .option('--debug', 'debug模式运行,支持热更新')
|
16 | .option('--target [targetName]', '重置target,device:真机 simulator:模拟器')
|
17 | .option('--env [env]', 'Env type')
|
18 | .option('--onlybuild', '构建完成后不安装sop')
|
19 | .option('--nodoctor', '构建时不执行环境检查')
|
20 | .option('--s1', '构建S1手机可用的应用')
|
21 | .parse(process.argv)
|
22 |
|
23 | const { type, debug, nodoctor, onlybuild, s1 } = program
|
24 | let { env } = program
|
25 | log.verbose('debug:', debug)
|
26 | log.verbose('env:', env)
|
27 | log.verbose('type:', type)
|
28 |
|
29 | env = process.env.NODE_ENV || env
|
30 |
|
31 | // 是否只打包
|
32 | const onlyBuild = !!onlybuild
|
33 |
|
34 | if (!fs.existsSync(projectConfPath)) {
|
35 | console.log(
|
36 | chalk.red(
|
37 | `找不到项目配置文件${PROJECT_CONFIG},请确定当前目录是SyberOS-Hybrid项目根目录!`
|
38 | )
|
39 | )
|
40 | process.exit(1)
|
41 | }
|
42 |
|
43 | // 检查是否需要重置target
|
44 | targetReset(appPath, program).then(() => {
|
45 | if (env) {
|
46 | process.env.NODE_ENV = env
|
47 | } else {
|
48 | if (debug) {
|
49 | process.env.NODE_ENV = 'development'
|
50 | } else {
|
51 | process.env.NODE_ENV = 'production'
|
52 | }
|
53 | }
|
54 |
|
55 | process.env.SYBEROS_ENV = type
|
56 |
|
57 | build(appPath, {
|
58 | type,
|
59 | debug,
|
60 | nodoctor,
|
61 | onlyBuild,
|
62 | s1
|
63 | })
|
64 | })
|