UNPKG

1.53 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').default
7const { targetReset } = require('../dist/build/target')
8const { PROJECT_CONFIG } = require('../dist/util/constants')
9const appPath = process.cwd()
10const projectConfPath = path.join(appPath, PROJECT_CONFIG)
11
12program
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
20const { type, debug, port } = program
21let { env } = program
22
23env = process.env.NODE_ENV || env
24
25if (!fs.existsSync(projectConfPath)) {
26 console.log(
27 chalk.red(
28 `找不到项目配置文件${PROJECT_CONFIG},请确定当前目录是SyberOS-Hybrid项目根目录!`
29 )
30 )
31 process.exit(1)
32}
33
34// 检查是否需要重置target
35targetReset(appPath, program)
36
37if (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
47process.env.SYBEROS_ENV = type
48
49const projectConf = require(projectConfPath)
50
51console.log(chalk.green(`开始编译项目 ${chalk.bold(projectConf.projectName)}`))
52
53build(appPath, {
54 type,
55 debug,
56 port: typeof port === 'string' ? port : undefined
57})