37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
/**
|
||
* 开发态跑的是 node_modules 里的 Electron.app,菜单栏名称来自 Info.plist。
|
||
* 把 CFBundleName / CFBundleDisplayName 改成产品名(仅 macOS;npm i 后需再跑一次)。
|
||
*/
|
||
import { createRequire } from 'module'
|
||
import { execFileSync } from 'child_process'
|
||
import { existsSync } from 'fs'
|
||
import { dirname, join } from 'path'
|
||
import { platform } from 'os'
|
||
|
||
const APP_NAME = 'LoveLiveMusicPlayer'
|
||
|
||
if (platform() !== 'darwin') {
|
||
process.exit(0)
|
||
}
|
||
|
||
const require = createRequire(import.meta.url)
|
||
let electronBinary
|
||
try {
|
||
electronBinary = require('electron')
|
||
} catch {
|
||
process.exit(0)
|
||
}
|
||
|
||
const plist = join(dirname(String(electronBinary)), '..', 'Info.plist')
|
||
if (!existsSync(plist)) {
|
||
console.warn('[patch-electron] Info.plist 未找到:', plist)
|
||
process.exit(0)
|
||
}
|
||
|
||
for (const key of ['CFBundleName', 'CFBundleDisplayName']) {
|
||
execFileSync('plutil', ['-replace', key, '-string', APP_NAME, plist])
|
||
}
|
||
// 促使 Launch Services 刷新缓存
|
||
execFileSync('touch', [join(dirname(plist), '..')])
|
||
console.log(`[patch-electron] 开发态应用名 → ${APP_NAME}`)
|