From 2e06bc5277391bd20594d67927def5ab1bab457b Mon Sep 17 00:00:00 2001 From: Ethanfly Date: Fri, 26 Dec 2025 16:09:17 +0800 Subject: [PATCH] Update package and build configurations to version 1.0.6, enhancing dependency management with updated versions of TypeScript, Vue, and other packages. Refactor afterPack script to utilize the rcedit module for icon setting, improving build process efficiency. Adjust PythonManager.vue styles for better UI consistency. --- build/afterPack.js | 33 +---- package-lock.json | 232 +++++++++++++++++++----------------- package.json | 28 +++-- public/version.json | 5 + src/views/PythonManager.vue | 4 + 5 files changed, 156 insertions(+), 146 deletions(-) create mode 100644 public/version.json diff --git a/build/afterPack.js b/build/afterPack.js index eca6ad0..7d70c64 100644 --- a/build/afterPack.js +++ b/build/afterPack.js @@ -1,7 +1,5 @@ const path = require('path'); -const { execSync } = require('child_process'); const fs = require('fs'); -const os = require('os'); exports.default = async function(context) { // 只在 Windows 上执行 @@ -16,28 +14,6 @@ exports.default = async function(context) { const exePath = path.join(appOutDir, `${productName}.exe`); const iconPath = path.join(__dirname, 'icon.ico'); - // rcedit 路径 - const userHome = os.homedir(); - const cacheDir = path.join(userHome, 'AppData', 'Local', 'electron-builder', 'Cache', 'winCodeSign'); - - // 查找 rcedit - let rceditPath = null; - if (fs.existsSync(cacheDir)) { - const dirs = fs.readdirSync(cacheDir); - for (const dir of dirs) { - const possiblePath = path.join(cacheDir, dir, 'rcedit-x64.exe'); - if (fs.existsSync(possiblePath)) { - rceditPath = possiblePath; - break; - } - } - } - - if (!rceditPath) { - console.warn('rcedit not found, skipping icon modification'); - return; - } - if (!fs.existsSync(exePath)) { console.warn(`Exe not found: ${exePath}`); return; @@ -49,12 +25,14 @@ exports.default = async function(context) { } try { + // 使用 npm 安装的 rcedit 模块 + const { rcedit } = require('rcedit'); + console.log(`Setting icon for: ${exePath}`); console.log(`Using icon: ${iconPath}`); - console.log(`Using rcedit: ${rceditPath}`); - execSync(`"${rceditPath}" "${exePath}" --set-icon "${iconPath}"`, { - stdio: 'inherit' + await rcedit(exePath, { + icon: iconPath }); console.log('Icon set successfully!'); @@ -62,4 +40,3 @@ exports.default = async function(context) { console.error('Failed to set icon:', error.message); } }; - diff --git a/package-lock.json b/package-lock.json index 4956f65..7ab2578 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "phper-dev-manager", - "version": "1.0.0", + "version": "1.0.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "phper-dev-manager", - "version": "1.0.0", + "version": "1.0.5", "license": "MIT", "dependencies": { "@element-plus/icons-vue": "^2.3.1", @@ -26,12 +26,13 @@ "concurrently": "^8.2.2", "electron": "^28.0.0", "electron-builder": "^24.9.1", + "rcedit": "^5.0.2", "sass": "^1.69.5", - "typescript": "^5.3.2", + "typescript": "^5.9.3", "vite": "^5.0.0", "vite-plugin-electron": "^0.15.5", "vite-plugin-electron-renderer": "^0.14.5", - "vue-tsc": "^1.8.25", + "vue-tsc": "^3.2.1", "wait-on": "^7.2.0" } }, @@ -1880,34 +1881,32 @@ } }, "node_modules/@volar/language-core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", - "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz", + "integrity": "sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "1.11.1" + "@volar/source-map": "2.4.27" } }, "node_modules/@volar/source-map": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", - "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz", + "integrity": "sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==", "dev": true, - "license": "MIT", - "dependencies": { - "muggle-string": "^0.3.1" - } + "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", - "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.27.tgz", + "integrity": "sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "1.11.1", - "path-browserify": "^1.0.1" + "@volar/language-core": "2.4.27", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, "node_modules/@vue/compiler-core": { @@ -1967,45 +1966,32 @@ "license": "MIT" }, "node_modules/@vue/language-core": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", - "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.1.tgz", + "integrity": "sha512-g6oSenpnGMtpxHGAwKuu7HJJkNZpemK/zg3vZzZbJ6cnnXq1ssxuNrXSsAHYM3NvH8p4IkTw+NLmuxyeYz4r8A==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "~1.11.1", - "@volar/source-map": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", - "muggle-string": "^0.3.1", + "@volar/language-core": "2.4.27", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.0.0", + "muggle-string": "^0.4.1", "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "picomatch": "^4.0.2" } }, - "node_modules/@vue/language-core/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@vue/language-core/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/@vue/reactivity": { @@ -2191,6 +2177,13 @@ "ajv": "^6.9.1" } }, + "node_modules/alien-signals": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz", + "integrity": "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2931,13 +2924,6 @@ "node": ">= 10" } }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3148,6 +3134,31 @@ "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/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -3177,13 +3188,6 @@ "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", "license": "MIT" }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true, - "license": "MIT" - }, "node_modules/debounce-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", @@ -4466,16 +4470,6 @@ "node": ">= 0.4" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -4629,6 +4623,22 @@ "is-ci": "bin.js" } }, + "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.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -4683,6 +4693,19 @@ "node": ">=8" } }, + "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/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -5167,9 +5190,9 @@ "license": "MIT" }, "node_modules/muggle-string": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", - "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "dev": true, "license": "MIT" }, @@ -5576,6 +5599,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/rcedit": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-5.0.2.tgz", + "integrity": "sha512-dgysxaeXZ4snLpPjn8aVtHvZDCx+aRcvZbaWBgl1poU6OPustMvOkj9a9ZqASQ6i5Y5szJ13LSvglEOwrmgUxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn-windows-exe": "^1.1.0" + }, + "engines": { + "node": ">= 22.12.0" + } + }, "node_modules/read-config-file": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", @@ -6491,6 +6527,13 @@ "license": "MIT", "peer": true }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, "node_modules/vue": { "version": "3.5.26", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz", @@ -6554,46 +6597,21 @@ "vue": "^3.5.0" } }, - "node_modules/vue-template-compiler": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", - "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "node_modules/vue-tsc": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", - "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.1.tgz", + "integrity": "sha512-I23Rk8dkQfmcSbxDO0dmg9ioMLjKA1pjlU3Lz6Jfk2pMGu3Uryu9810XkcZH24IzPbhzPCnkKo2rEMRX0skSrw==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "semver": "^7.5.4" + "@volar/typescript": "2.4.27", + "@vue/language-core": "3.2.1" }, "bin": { "vue-tsc": "bin/vue-tsc.js" }, "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/vue-tsc/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "typescript": ">=5.0.0" } }, "node_modules/wait-on": { diff --git a/package.json b/package.json index b60aa15..1e75b15 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,20 @@ { "name": "phper-dev-manager", - "version": "1.0.0", + "version": "1.0.6", "description": "PHP开发环境管理器 - 管理PHP、MySQL、Nginx、Redis服务", "main": "dist-electron/main.js", "scripts": { "dev": "vite", - "build": "node scripts/bump-version.js && vue-tsc --noEmit && vite build && electron-builder", - "build:patch": "node scripts/bump-version.js patch && vue-tsc --noEmit && vite build && electron-builder", - "build:minor": "node scripts/bump-version.js minor && vue-tsc --noEmit && vite build && electron-builder", - "build:major": "node scripts/bump-version.js major && vue-tsc --noEmit && vite build && electron-builder", - "build:nobump": "vue-tsc --noEmit && vite build && electron-builder", + "build": "node scripts/bump-version.js && vite build && electron-builder", + "build:patch": "node scripts/bump-version.js patch && vite build && electron-builder", + "build:minor": "node scripts/bump-version.js minor && vite build && electron-builder", + "build:major": "node scripts/bump-version.js major && vite build && electron-builder", + "build:nobump": "vite build && electron-builder", + "build:check": "vue-tsc --noEmit && vite build && electron-builder", "preview": "vite preview", "electron:dev": "vite", - "electron:build": "node scripts/bump-version.js && vite build && electron-builder" + "electron:build": "node scripts/bump-version.js && vite build && electron-builder", + "typecheck": "vue-tsc --noEmit" }, "author": "PHPer", "license": "MIT", @@ -22,12 +24,13 @@ "concurrently": "^8.2.2", "electron": "^28.0.0", "electron-builder": "^24.9.1", + "rcedit": "^5.0.2", "sass": "^1.69.5", - "typescript": "^5.3.2", + "typescript": "^5.9.3", "vite": "^5.0.0", "vite-plugin-electron": "^0.15.5", "vite-plugin-electron-renderer": "^0.14.5", - "vue-tsc": "^1.8.25", + "vue-tsc": "^3.2.1", "wait-on": "^7.2.0" }, "dependencies": { @@ -72,7 +75,8 @@ } ], "icon": "build/icon.ico", - "requestedExecutionLevel": "requireAdministrator" + "requestedExecutionLevel": "requireAdministrator", + "signAndEditExecutable": false }, "nsis": { "oneClick": false, @@ -82,6 +86,8 @@ "createDesktopShortcut": true, "createStartMenuShortcut": true, "shortcutName": "PHPer开发环境管理器", + "installerIcon": "build/icon.ico", + "uninstallerIcon": "build/icon.ico", "installerLanguages": [ "zh_CN", "en_US" @@ -101,4 +107,4 @@ } ] } -} +} \ No newline at end of file diff --git a/public/version.json b/public/version.json new file mode 100644 index 0000000..733d4f3 --- /dev/null +++ b/public/version.json @@ -0,0 +1,5 @@ +{ + "version": "1.0.6", + "buildTime": "2025-12-26T08:01:20.649Z", + "buildDate": "2025/12/26" +} \ No newline at end of file diff --git a/src/views/PythonManager.vue b/src/views/PythonManager.vue index d5e57ef..6927228 100644 --- a/src/views/PythonManager.vue +++ b/src/views/PythonManager.vue @@ -533,6 +533,10 @@ onUnmounted(() => { .el-form-item { margin-bottom: 16px; } + + .el-select { + width: 160px; + } } .pip-hint {