#!/usr/bin/env node const path = require('path') const fs = require('fs-extra') const program = require('commander') const chalk = require('chalk') const build = require('../dist/build/index').default const { targetReset } = require('../dist/build/target') const { PROJECT_CONFIG } = require('../dist/util/constants') const { log } = require('../dist/util/log') const appPath = process.cwd() const projectConfPath = path.join(appPath, PROJECT_CONFIG) program .option('--type [typeName]', '运行编译类型,device:真机 simulator:模拟器') .option('--debug', 'debug模式运行,支持热更新') .option('--target [targetName]', '重置target,device:真机 simulator:模拟器') .option('--env [env]', 'Env type') .option('--onlybuild', '构建完成后不安装sop') .option('--nodoctor', '构建时不执行环境检查') .option('--s1', '构建S1手机可用的应用') .parse(process.argv) const { type, debug, nodoctor, onlybuild, s1 } = program let { env } = program log.verbose('debug:', debug) log.verbose('env:', env) log.verbose('type:', type) env = process.env.NODE_ENV || env // 是否只打包 const onlyBuild = !!onlybuild if (!fs.existsSync(projectConfPath)) { console.log( chalk.red( `找不到项目配置文件${PROJECT_CONFIG},请确定当前目录是SyberOS-Hybrid项目根目录!` ) ) process.exit(1) } // 检查是否需要重置target targetReset(appPath, program).then(() => { if (env) { process.env.NODE_ENV = env } else { if (debug) { process.env.NODE_ENV = 'development' } else { process.env.NODE_ENV = 'production' } } process.env.SYBEROS_ENV = type build(appPath, { type, debug, nodoctor, onlyBuild, s1 }) })