Files
prompt-optimizer/package.json
T
linshen 31b807ba0b feat: 重构核心服务以支持Electron环境,并增强历史管理器功能
- 核心服务:
    - 移除单例导出,引入工厂函数模式以提升灵活性和可测试性。
    - 显式接收依赖并处理重构中的依赖问题,更新文档以反映新的服务创建方式和依赖注入策略。
    - 添加相应的代理和管理器工厂函数,优化服务初始化逻辑,确保在Electron环境下的配置同步。
- 历史管理器:引入 `IModelManager` 支持模型管理,修改构造函数并恢复模型名称获取逻辑。
- 构建配置:
    - 更新 `.gitignore` 文件,添加桌面应用相关构建和分发文件的忽略规则。
    - 在 `package.json` 中新增桌面应用构建和开发命令。
    - 更新 `pnpm-lock.yaml` 以包含新依赖。
- 重构计划文档:移除循环依赖描述,增加重构反思与后续决策,优化 `ensureInitialized()` 调用,修正错误处理行为并提升测试代码严谨性。
2025-06-28 11:21:33 +08:00

83 lines
3.7 KiB
JSON

{
"name": "prompt-optimizer",
"version": "1.2.0",
"private": true,
"packageManager": "pnpm@10.6.1",
"engines": {
"node": "^18.0.0 || ^20.0.0 || ^22.0.0",
"npm": "请使用pnpm代替npm",
"yarn": "请使用pnpm代替yarn"
},
"scripts": {
"build:core": "pnpm -F @prompt-optimizer/core build",
"build:ui": "pnpm -F @prompt-optimizer/ui build",
"build:web": "pnpm -F @prompt-optimizer/web build",
"build:ext": "pnpm -F @prompt-optimizer/extension build",
"build:desktop": "pnpm build:core && pnpm build:ui && pnpm build:web && pnpm -F @prompt-optimizer/desktop build",
"build:desktop-standalone": "cd packages/desktop-standalone && npm run build",
"build": "pnpm -r build",
"watch:ui": "pnpm -F @prompt-optimizer/ui build --watch",
"dev": "npm-run-all dev:setup dev:parallel",
"dev:setup": "npm-run-all clean:dist build:core build:ui",
"dev:parallel": "concurrently -k -p \"[{name}]\" -n \"UI,WEB\" \"pnpm run watch:ui\" \"pnpm run dev:web\"",
"dev:web": "pnpm -F @prompt-optimizer/web dev",
"dev:ext": "pnpm -F @prompt-optimizer/extension dev",
"dev:desktop": "npm-run-all dev:setup dev:desktop:parallel",
"dev:desktop:parallel": "concurrently -k -p \"[{name}]\" -n \"UI,WEB,DESKTOP\" \"pnpm run watch:ui\" \"pnpm run dev:web\" \"pnpm -F @prompt-optimizer/desktop dev\"",
"dev:desktop:fresh": "npm-run-all clean setup:install dev:desktop",
"test:core": "pnpm -F @prompt-optimizer/core test --run --passWithNoTests",
"test:ui": "pnpm -F @prompt-optimizer/ui test --run --passWithNoTests",
"test:web": "pnpm -F @prompt-optimizer/web test --run --passWithNoTests",
"test:ext": "pnpm -F @prompt-optimizer/extension test --run --passWithNoTests",
"test": "pnpm -r test --run --passWithNoTests",
"test:watch": "pnpm -r test --watch --passWithNoTests",
"clean:core": "rimraf packages/core/dist",
"clean:ui": "rimraf packages/ui/dist",
"clean:web": "rimraf packages/web/dist",
"clean:ext": "rimraf packages/extension/dist",
"clean:desktop": "rimraf packages/desktop/dist packages/desktop/web-dist",
"clean:vite:core": "rimraf packages/core/node_modules/.vite",
"clean:vite:ui": "rimraf packages/ui/node_modules/.vite",
"clean:vite:web": "rimraf packages/web/node_modules/.vite",
"clean:vite:ext": "rimraf packages/extension/node_modules/.vite",
"clean:vite": "npm-run-all clean:vite:core clean:vite:ui clean:vite:web clean:vite:ext",
"clean:dist": "npm-run-all clean:core clean:ui clean:web clean:ext clean:desktop",
"clean": "npm-run-all clean:dist clean:vite",
"setup:install": "pnpm install",
"dev:fresh": "npm-run-all clean setup:install dev",
"version:sync": "node scripts/sync-versions.js",
"version": "pnpm run version:sync && git add -A"
},
"devDependencies": {
"@intlify/unplugin-vue-i18n": "^6.0.3",
"concurrently": "^8.2.2",
"cross-env": "^7.0.3",
"i18next": "^24.2.2",
"i18next-browser-languagedetector": "^8.0.4",
"lodash-unified": "^1.0.3",
"npm-run-all": "^4.1.5",
"rimraf": "^4.4.1",
"typescript": "^5.8.2"
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
"@floating-ui/core": "^1.6.9",
"@floating-ui/dom": "^1.6.13",
"@floating-ui/utils": "^0.2.9",
"@popperjs/core": "^2.11.8",
"@vue/reactivity": "^3.5.13",
"@vue/runtime-core": "^3.5.13",
"@vue/runtime-dom": "^3.5.13",
"@vue/shared": "^3.5.13",
"@vueuse/core": "^12.7.0",
"@vueuse/shared": "^12.7.0",
"async-validator": "^4.2.5",
"dayjs": "^1.11.13",
"electron-to-chromium": "^1.5.177",
"lodash-es": "^4.17.21",
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.2.0",
"vue-i18n": "^10.0.6"
}
}