From 25ac4ae3af8c92257196e62626a53701a20bb760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=89=E9=9E=8B=E6=B2=A1=E5=8F=B7?= <308487730@qq.com> Date: Tue, 2 Nov 2021 11:15:19 +0800 Subject: [PATCH] feat: electron-builder --- scripts/build.ts | 17 ++++++++++++- scripts/electron-builder.config.ts | 38 ++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 scripts/electron-builder.config.ts diff --git a/scripts/build.ts b/scripts/build.ts index 2ededb7..f764c2e 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -1,6 +1,8 @@ import { join, relative } from 'path' import { rollup, RollupOptions, OutputOptions, RollupOutput } from 'rollup' import { build as viteBuild2 } from 'vite' +import { build as electronBuild2 } from 'electron-builder' +import { config as builderConfig } from './electron-builder.config' import { mainOptions, preloadOptions, @@ -42,15 +44,28 @@ async function buildReactTs(): Promise { } } -; (async () => { +// build electron +async function electronBuild() { + try { + const result = await electronBuild2({ config: builderConfig }) + console.log(TAG, `electron-builder.build result - ${result}`) + return [null, result] + } catch (error) { + return [error, null] + } +} + +; (async () => { console.log(TAG, 'Build with rollup.') try { await Promise.all([ + // Avoid logs cleaned by vite rollupBuild(mainOptions()), rollupBuild(preloadOptions()), ]) await buildReactTs() + await electronBuild() } catch (error) { console.error(TAG, error) process.exit(1) diff --git a/scripts/electron-builder.config.ts b/scripts/electron-builder.config.ts new file mode 100644 index 0000000..ca3aaa0 --- /dev/null +++ b/scripts/electron-builder.config.ts @@ -0,0 +1,38 @@ +import { Configuration } from 'electron-builder' + +const config: Configuration = { + appId: "308487730@qq.com", + asar: true, + directories: { + output: "release/${version}" + }, + files: [ + "!node_modules", + "dist/**" + ], + mac: { + artifactName: "${productName}_${version}.${ext}", + target: [ + "dmg" + ] + }, + win: { + target: [ + { + target: "nsis", + arch: [ + "x64" + ] + } + ], + artifactName: "${productName}_${version}.${ext}" + }, + nsis: { + oneClick: false, + perMachine: false, + allowToChangeInstallationDirectory: true, + deleteAppDataOnUninstall: false + } +} + +export { config }