cordova-13/scripts/platform.ts

73 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-12-16 21:30:38 +08:00
import { exec } from 'node:child_process'
import { promisify } from 'node:util'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { access } from 'node:fs/promises'
import consola from 'consola'
const execAsync = promisify(exec)
const __dirname = fileURLToPath(new URL('.', import.meta.url))
const root = join(__dirname, '..')
async function checkPlatformExists(platform: string): Promise<boolean> {
try {
await access(join(root, 'platforms', platform))
return true
} catch {
return false
}
}
async function addPlatform(platform: string) {
try {
// 检查平台是否已存在
const exists = await checkPlatformExists(platform)
if (exists) {
consola.info(`Platform ${platform} already exists`)
return
}
// 添加平台
consola.info(`Adding ${platform} platform...`)
const { stdout, stderr } = await execAsync(`cordova platform add ${platform}`, {
cwd: root,
env: {
...process.env,
NODE_ENV: 'development'
}
})
if (stderr) {
consola.warn(stderr)
}
if (stdout) {
consola.info(stdout)
}
consola.success(`Platform ${platform} added successfully`)
} catch (error) {
if (error instanceof Error) {
consola.error('Failed to add platform:', error.message)
} else {
consola.error('An unknown error occurred while adding platform')
}
process.exit(1)
}
}
async function main() {
try {
// 添加 Android 平台
await addPlatform('android')
} catch (error) {
if (error instanceof Error) {
consola.error('Platform addition failed:', error.message)
} else {
consola.error('An unknown error occurred')
}
process.exit(1)
}
}
main()