UNPKG

1.75 kBPlain TextView Raw
1#!/usr/bin/env node
2const path = require('path')
3const fs = require('fs-extra')
4const program = require('commander')
5const chalk = require('chalk')
6const build = require('../dist/build/index').default
7const { targetReset } = require('../dist/build/target')
8const { PROJECT_CONFIG } = require('../dist/util/constants')
9const { log } = require('../dist/util/log')
10const appPath = process.cwd()
11const projectConfPath = path.join(appPath, PROJECT_CONFIG)
12
13program
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
23const { type, debug, nodoctor, onlybuild, s1 } = program
24let { env } = program
25log.verbose('debug:', debug)
26log.verbose('env:', env)
27log.verbose('type:', type)
28
29env = process.env.NODE_ENV || env
30
31// 是否只打包
32const onlyBuild = !!onlybuild
33
34if (!fs.existsSync(projectConfPath)) {
35 console.log(
36 chalk.red(
37 `找不到项目配置文件${PROJECT_CONFIG},请确定当前目录是SyberOS-Hybrid项目根目录!`
38 )
39 )
40 process.exit(1)
41}
42
43// 检查是否需要重置target
44targetReset(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})