docs/archives/116-desktop-packaging-optimization/README.md
将桌面应用从单文件portable模式改为ZIP压缩包模式,解决了存储路径检测问题,简化了代码架构。
存储路径问题:
process.execPath 指向临时解压目录架构复杂性:
之前(不同格式):
{
"win": { "target": "portable" },
"mac": { "target": "dmg" },
"linux": { "target": "AppImage" }
}
现在(统一ZIP格式):
{
"win": {
"target": "zip",
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}"
},
"mac": {
"target": "zip",
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}"
},
"linux": {
"target": "zip",
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}"
}
}
之前(复杂检测):
现在(简化逻辑):
if (app.isPackaged) {
// ZIP包解压后的portable模式
const exePath = app.getPath('exe');
const execDir = path.dirname(exePath);
userDataPath = path.join(execDir, 'prompt-optimizer-data');
} else {
// 开发环境
userDataPath = path.join(__dirname, '..', '..', 'prompt-optimizer-data');
}
debugLog 函数packages/desktop/package.jsoncd packages/desktop
pnpm run build
PromptOptimizer-1.2.0-win-x64.zipPromptOptimizer-1.2.0-darwin-x64.zip / PromptOptimizer-1.2.0-darwin-arm64.zipPromptOptimizer-1.2.0-linux-x64.zip所有平台:
prompt-optimizer-data/ 目录