40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
/**
|
||
* 加载项目根目录 .env 后启动 electron-builder(不覆盖已有环境变量)。
|
||
*/
|
||
import { existsSync, readFileSync } from 'fs'
|
||
import { spawnSync } from 'child_process'
|
||
import { dirname, join } from 'path'
|
||
import { fileURLToPath } from 'url'
|
||
|
||
const root = join(dirname(fileURLToPath(import.meta.url)), '..')
|
||
const envPath = join(root, '.env')
|
||
|
||
if (existsSync(envPath)) {
|
||
for (const raw of readFileSync(envPath, 'utf8').split(/\r?\n/)) {
|
||
const line = raw.trim()
|
||
if (!line || line.startsWith('#')) continue
|
||
const eq = line.indexOf('=')
|
||
if (eq <= 0) continue
|
||
const key = line.slice(0, eq).trim()
|
||
let val = line.slice(eq + 1).trim()
|
||
if (
|
||
(val.startsWith('"') && val.endsWith('"')) ||
|
||
(val.startsWith("'") && val.endsWith("'"))
|
||
) {
|
||
val = val.slice(1, -1)
|
||
}
|
||
if (process.env[key] === undefined) process.env[key] = val
|
||
}
|
||
console.log('[env] loaded', envPath)
|
||
} else {
|
||
console.warn('[env] 未找到 .env,公证需要 APPLE_ID / APPLE_APP_SPECIFIC_PASSWORD / APPLE_TEAM_ID')
|
||
}
|
||
|
||
const cli = join(root, 'node_modules/electron-builder/cli.js')
|
||
const r = spawnSync(process.execPath, [cli, ...process.argv.slice(2)], {
|
||
stdio: 'inherit',
|
||
env: process.env,
|
||
cwd: root
|
||
})
|
||
process.exit(r.status ?? 1)
|