refactor(ci): use ts config generator for electron-builder

This commit is contained in:
Makito
2026-02-08 19:22:33 +09:00
parent 0f3c9cd9a7
commit a4ca8b3e5a
3 changed files with 93 additions and 1 deletions
@@ -0,0 +1,90 @@
/* eslint-disable no-template-curly-in-string */
import type { Configuration } from 'electron-builder'
export default {
appId: 'ai.moeru.airi',
productName: 'AIRI',
directories: {
output: 'dist',
buildResources: 'build',
},
files: [
'out/**',
'resources/**',
'package.json',
'!**/.vscode/*',
'!src/**/*',
'!**/node_modules/**/{CHANGELOG.md,README.md,README,readme.md,readme}',
'!**/node_modules/**/{.turbo,test,src,__tests__,tests,example,examples}',
'node_modules/debug/src/**',
'!electron.vite.config.{js,ts,mjs,cjs}',
'!vite.config.{js,ts,mjs,cjs}',
'!uno.config.{js,ts,mjs,cjs}',
'!{.eslintcache,eslint.config.ts,.yaml,dev-app-update.yml,CHANGELOG.md,README.md}',
'!{.env,.env.*,.npmrc,pnpm-lock.yaml}',
'!{tsconfig.json}',
],
asar: true,
asarUnpack: [
'**/*.node',
],
extraMetadata: {
name: 'ai.moeru.airi',
main: 'out/main/index.js',
homepage: 'https://airi.moeru.ai/docs/',
repository: 'https://github.com/moeru-ai/airi',
license: 'MIT',
},
win: {
executableName: 'airi',
},
nsis: {
artifactName: '${productName}-${version}-windows-${arch}-setup.${ext}',
shortcutName: '${productName}',
uninstallDisplayName: '${productName}',
createDesktopShortcut: 'always',
deleteAppDataOnUninstall: true,
oneClick: false,
allowToChangeInstallationDirectory: true,
},
mac: {
entitlementsInherit: 'build/entitlements.mac.plist',
extendInfo: [
{
NSMicrophoneUsageDescription: 'AIRI requires microphone access for voice interaction',
},
{
NSCameraUsageDescription: 'AIRI requires camera access for vision understanding',
},
],
notarize: false,
hardenedRuntime: false,
executableName: 'airi',
icon: 'icon.icon',
},
dmg: {
artifactName: '${productName}-${version}-darwin-${arch}.${ext}',
},
linux: {
target: [
'deb',
'rpm',
],
category: 'Utility',
synopsis: 'AI VTuber/Waifu chatbot app inspired by Neuro-sama.',
description: 'AIRI is an AI VTuber/Waifu chatbot supporting Live2D/VRM avatars, featuring human-like interactions and modular stage-based rendering.',
executableName: 'airi',
artifactName: '${productName}-${version}-linux-${arch}.${ext}',
icon: 'build/icons/icon.png',
},
appImage: {
artifactName: '${productName}-${version}-linux-${arch}.${ext}',
},
npmRebuild: false,
publish: {
provider: 'github',
owner: 'moeru-ai',
repo: 'airi',
},
} as Configuration
+1 -1
View File
@@ -179,6 +179,6 @@
},
"build": {
"appId": "ai.moeru.airi",
"extends": "electron-builder.yml"
"extends": "electron-builder.config.ts"
}
}
+2
View File
@@ -16,6 +16,7 @@ words:
- animejs
- APNG
- Armbruster
- asar
- astrojs
- Attributify
- attw
@@ -309,6 +310,7 @@ words:
- vtuber
- vueuse
- waapi
- Waifu
- warpdrive
- Warudo
- wavefile