From e152ac4625b7461ccf40d7dd5ab52c73f5e50ede Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Wed, 1 Apr 2026 23:10:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=89=93=E5=8C=85?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- forge.config.ts | 17 ++++- package-lock.json | 160 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 176 insertions(+), 2 deletions(-) diff --git a/forge.config.ts b/forge.config.ts index 149e243..cbcad40 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -7,6 +7,7 @@ import { MakerDMG } from '@electron-forge/maker-dmg'; import { VitePlugin } from '@electron-forge/plugin-vite'; import { FusesPlugin } from '@electron-forge/plugin-fuses'; import { FuseV1Options, FuseVersion } from '@electron/fuses'; +import MakerWix from '@electron-forge/maker-wix'; import * as fs from 'fs-extra'; import * as path from 'path'; import * as esbuild from 'esbuild'; @@ -16,15 +17,27 @@ const config: ForgeConfig = { asar: true, tmpdir: path.resolve(process.cwd(), '..', 'electron-packager-tmp'), name: 'NianXX', - icon: path.join(__dirname, 'public/logo.ico'), + icon: path.join(__dirname, 'public/logo'), + appCopyright: 'Copyright © 2026 智念科技', }, rebuildConfig: {}, makers: [ - new MakerSquirrel({}), + new MakerSquirrel({ + iconUrl: path.join(__dirname, 'public/logo.ico'), // 快捷方式的图标,需要在线的地址 + setupIcon: path.join(__dirname, 'public/logo.ico'), + setupExe: 'NianXX.exe', + // loadingGif: path.join(__dirname, 'public/loading.gif'), // 修改默认安装图片 + }), new MakerZIP({}, ['darwin']), new MakerRpm({}), new MakerDeb({}), new MakerDMG({}), + new MakerWix({ + language: 2052, + ui: { + chooseDirectory: true, + } + }), ], plugins: [ new VitePlugin({ diff --git a/package-lock.json b/package-lock.json index 25cc460..1bd92f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,6 +49,7 @@ "@electron-forge/maker-dmg": "^7.11.1", "@electron-forge/maker-rpm": "^7.10.2", "@electron-forge/maker-squirrel": "^7.10.2", + "@electron-forge/maker-wix": "^7.11.1", "@electron-forge/maker-zip": "^7.10.2", "@electron-forge/plugin-auto-unpack-natives": "^7.10.2", "@electron-forge/plugin-fuses": "^7.10.2", @@ -192,6 +193,15 @@ "node": ">=6.9.0" } }, + "node_modules/@bitdisaster/exe-icon-extractor": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@bitdisaster/exe-icon-extractor/-/exe-icon-extractor-1.0.10.tgz", + "integrity": "sha512-iTZ8cVGZ5dglNRyFdSj8U60mHIrC8XNIuOHN/NkM5/dQP4nsmpyqeQTAADLLQgoFCNJD+DiwQCv8dR2cCeWP4g==", + "dev": true, + "hasInstallScript": true, + "license": "ISC", + "optional": true + }, "node_modules/@clack/core": { "version": "0.5.0", "resolved": "https://registry.npmmirror.com/@clack/core/-/core-0.5.0.tgz", @@ -449,6 +459,26 @@ "electron-winstaller": "^5.3.0" } }, + "node_modules/@electron-forge/maker-wix": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-wix/-/maker-wix-7.11.1.tgz", + "integrity": "sha512-yKsnfPQVBrjyjWndmSB0rqQSXAiIukwz5fuVyoCTnYpfJQojrEEMUN/eXSHA08d+rOPbB/hkMAR+QJcjJ8vO2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/core-utils": "7.11.1", + "@electron-forge/maker-base": "7.11.1", + "@electron-forge/shared-types": "7.11.1", + "chalk": "^4.0.0", + "electron-wix-msi": "^5.1.3", + "log-symbols": "^4.0.0", + "parse-author": "^2.0.0", + "semver": "^7.2.1" + }, + "engines": { + "node": ">= 16.4.0" + } + }, "node_modules/@electron-forge/maker-zip": { "version": "7.11.1", "resolved": "https://registry.npmmirror.com/@electron-forge/maker-zip/-/maker-zip-7.11.1.tgz", @@ -4826,6 +4856,54 @@ "node": ">= 8" } }, + "node_modules/cross-spawn-windows-exe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", + "integrity": "sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-cross-spawn-windows-exe?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "is-wsl": "^2.2.0", + "which": "^2.0.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cross-spawn-windows-exe/node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/cross-zip": { "version": "4.0.1", "resolved": "https://registry.npmmirror.com/cross-zip/-/cross-zip-4.0.1.tgz", @@ -5742,6 +5820,29 @@ "node": ">= 4.0.0" } }, + "node_modules/electron-wix-msi": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/electron-wix-msi/-/electron-wix-msi-5.1.3.tgz", + "integrity": "sha512-EYj1cm1nZoVHmIIx3o0aKt784lxdEpJnXbEnyypklUCnglqSb7ni+1xi1Vp/gtrGS/mzIxnWBT+x5fIfuDjhvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/windows-sign": "^1.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "klaw": "^4.1.0", + "lodash": "^4.17.21", + "rcedit": "^4.0.1", + "rcinfo": "^0.1.3", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@bitdisaster/exe-icon-extractor": "^1.0.10" + } + }, "node_modules/electron/node_modules/@electron/get": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/@electron/get/-/get-2.0.3.tgz", @@ -7569,6 +7670,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", @@ -7703,6 +7820,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isbinaryfile": { "version": "4.0.10", "resolved": "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz", @@ -7914,6 +8044,16 @@ "json-buffer": "3.0.1" } }, + "node_modules/klaw": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.1.0.tgz", + "integrity": "sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", @@ -10277,6 +10417,26 @@ "murmur-32": "^0.1.0 || ^0.2.0" } }, + "node_modules/rcedit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-4.0.1.tgz", + "integrity": "sha512-bZdaQi34krFWhrDn+O53ccBDw0MkAT2Vhu75SqhtvhQu4OPyFM4RoVheyYiVQYdjhUi6EJMVWQ0tR6bCIYVkUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn-windows-exe": "^1.1.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/rcinfo": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/rcinfo/-/rcinfo-0.1.3.tgz", + "integrity": "sha512-c2XV2aYgY7x3BscO+/B/nCTtMvnclZ8w5D7R6zgK4sGOQnE0MjlXhOPynno7yp6Iw1RPNSXBwXwB1svZVRfcSw==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/react": { "version": "19.2.4", "resolved": "https://registry.npmmirror.com/react/-/react-19.2.4.tgz", diff --git a/package.json b/package.json index 5c934b8..709fb10 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@electron-forge/maker-dmg": "^7.11.1", "@electron-forge/maker-rpm": "^7.10.2", "@electron-forge/maker-squirrel": "^7.10.2", + "@electron-forge/maker-wix": "^7.11.1", "@electron-forge/maker-zip": "^7.10.2", "@electron-forge/plugin-auto-unpack-natives": "^7.10.2", "@electron-forge/plugin-fuses": "^7.10.2",