diff --git a/electron-builder.config.js b/electron-builder.config.js new file mode 100644 index 0000000..3049929 --- /dev/null +++ b/electron-builder.config.js @@ -0,0 +1,76 @@ +/** @format */ + +module.exports = { + appId: 'com.refrain.app', + productName: 'refrain-music', + directories: { + buildResources: 'build', + output: 'dist-client', + }, + files: [ + '**/*', + '!**/.md', + '!**/.vscode/*', + '!**/electron.vite.config.{js,ts,mjs,cjs}', + '!{.eslintignore,.editorconfig,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}', + '!{.env,.env.*,.npmrc,pnpm-lock.yaml,yarn.lock}', + '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}', + ], + afterSign: 'build/notarize.js', + extends: null, + win: { + target: [ + { + target: 'portable', + arch: 'x64', + }, + { + target: 'nsis', + arch: 'x64', + }, + ], + icon: 'build/icon.png', + executableName: 'refrain-music', + artifactName: '${productName}.v${version}.${os}-${arch}.${ext}', + }, + nsis: { + oneClick: false, + artifactName: '${name}-${version}-setup.${ext}', + shortcutName: '${productName}', + uninstallDisplayName: '${productName}', + createDesktopShortcut: 'always', + createStartMenuShortcut: true, + perMachine: true, + installerIcon: 'build/icon.png', + uninstallerIcon: 'build/icon.png', + allowToChangeInstallationDirectory: true, + allowElevation: true, + }, + mac: { + icon: 'build/icon.png', + entitlementsInherit: 'build/entitlements.mac.plist', + extendInfo: { + NSCameraUsageDescription: `Application requests access to the device's camera.`, + NSMicrophoneUsageDescription: `Application requests access to the device's microphone.`, + NSDocumentsFolderUsageDescription: `Application requests access to the user's Documents folder.`, + NSDownloadsFolderUsageDescription: `Application requests access to the user's Downloads folder.`, + }, + }, + dmg: { + artifactName: '${name}-${version}.${ext}', + }, + linux: { + target: ['AppImage', 'snap', 'deb'], + maintainer: 'electronjs.org', + category: 'Utility', + icon: 'build/icon.png', + }, + appImage: { + artifactName: '${name}-${version}.${ext}', + }, + npmRebuild: false, + publish: { + provider: 'generic', + url: 'https://refrain-music.vercel.app', + }, +}; diff --git a/electron-builder.yml b/electron-builder.yml deleted file mode 100644 index e3a6108..0000000 --- a/electron-builder.yml +++ /dev/null @@ -1,50 +0,0 @@ -# @format - -appId: com.refrain.app -productName: refrain-music -directories: - buildResources: build - output: dist-client -files: - - '**/*' - - '!**/.md' - - '!**/.vscode/*' - - '!**/electron.vite.config.{js,ts,mjs,cjs}' - - '!{.eslintignore,.editorconfig,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}' - - '!{.env,.env.*,.npmrc,pnpm-lock.yaml,yarn.lock}' - - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}' -afterSign: build/notarize.js -extends: null -win: - icon: build/icon.png - executableName: refrain-music -nsis: - artifactName: ${name}-${version}-setup.${ext} - shortcutName: ${productName} - uninstallDisplayName: ${productName} - createDesktopShortcut: always - createStartMenuShortcut: true -mac: - icon: build/icon.png - entitlementsInherit: build/entitlements.mac.plist - extendInfo: - - NSCameraUsageDescription: Application requests access to the device's camera. - - NSMicrophoneUsageDescription: Application requests access to the device's microphone. - - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder. - - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder. -dmg: - artifactName: ${name}-${version}.${ext} -linux: - target: - - AppImage - - snap - - deb - maintainer: electronjs.org - category: Utility - icon: build/icon.png -appImage: - artifactName: ${name}-${version}.${ext} -npmRebuild: false -publish: - provider: generic - url: https://refrain-music.vercel.app diff --git a/package.json b/package.json index 186aaeb..84aaa70 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,12 @@ "preview:client": "electron-vite preview -c scripts/vite/electron.vite.config.ts", "dev:client": "electron-vite dev -c scripts/vite/electron.vite.config.ts", "build:client": "electron-vite build -c scripts/vite/electron.vite.config.ts", - "build:win": "npm run build:client && electron-builder --win --config", - "build:mac": "npm run build:client && electron-builder --mac --config", - "build:linux": "npm run build:client && electron-builder --linux --config", + "build:win": "npm run build:client && electron-builder --config electron-builder.config.js --win --x64", + "build:win-arm64": "npm run build:client && electron-builder --config electron-builder.config.js --win --arm64", + "build:mac": "npm run build:client && electron-builder --config electron-builder.config.js --mac --x64", + "build:mac-arm64": "npm run build:client && electron-builder --config electron-builder.config.js --mac --arm64", + "build:linux": "npm run build:client && electron-builder --config electron-builder.config.js --linux --x64", + "build:linux-arm64": "npm run build:client && electron-builder --config electron-builder.config.js --linux --arm64", "postinstall": "electron-builder install-app-deps", "postuninstall": "electron-builder install-app-deps" },