# DesignerCEP 常用命令 ## 🏗️ 三层架构说明 ``` ┌────────────────────────────────────────┐ │ 第 1 层:Shell(登录层) │ │ - 本地:file:// 协议(CEP 扩展) │ │ - 服务器:http://127.0.0.1:8000/shell/ │ │ - 作用:登录、下载、启动 │ └────────────────────────────────────────┘ ↓ ┌────────────────────────────────────────┐ │ 第 2 层:Core(业务层) │ │ - http://127.0.0.1:8000/core/vX.X.X/ │ │ - 作用:所有业务功能 │ └────────────────────────────────────────┘ ↓ ┌────────────────────────────────────────┐ │ 第 3 层:Server(后端服务器) │ │ - http://127.0.0.1:8000/api/v1/ │ │ - 作用:API、核心算法、数据库 │ └────────────────────────────────────────┘ ``` --- ## 📦 构建命令 ### 开发模式 ```bash cd D:\main\DesignerCEP\Designer npm run dev # 启动开发服务器(Core) ``` ### 构建 Core(业务层) ```bash cd D:\main\DesignerCEP\Designer npm run build:core # 构建 Core 应用 ``` ### 构建 Shell(登录层) ```bash cd D:\main\DesignerCEP\Designer npm run build:shell # 构建 Shell(登录、更新、加载 Core) # 构建后部署到服务器 cd .. Copy-Item -Path "Designer\dist" -Destination "Server\Designer\dist" -Recurse -Force ``` --- ## 🚀 发布命令 ### 自动发布 Core(推荐) ```bash cd D:\main\DesignerCEP python auto_deploy_core.py --version v1.1.2 # 只构建打包 python auto_deploy_core.py --version v1.1.2 --update-db # 构建打包 + 更新数据库 python auto_deploy_core.py --version v1.1.2 --update-db --skip-clean # 不清除缓存 ``` ### 手动发布步骤 ```bash # 1. 构建 cd D:\main\DesignerCEP\Designer npm run build:core # 2. 重命名入口文件 cd dist_core ren index-core.html index.html # 3. 打包 ZIP # 把 dist_core 目录打包成 core-v1.1.2.zip # 4. 上传到 Server/archives/ ``` --- ## 🗄️ 服务器命令 ### 启动后端服务 ```bash cd D:\main\DesignerCEP\Server python main.py # 启动 FastAPI 服务器 python -m uvicorn app.main:app --reload # 或使用 uvicorn(推荐) ``` ### 更新数据库版本 ```bash cd D:\main\DesignerCEP\Server python update_version.py ``` ### 部署 Shell 到服务器 ```bash # 1. 构建 Shell cd D:\main\DesignerCEP\Designer npm run build:shell # 2. 复制到服务器 cd .. Copy-Item -Path "Designer\dist" -Destination "Server\Designer\dist" -Recurse -Force # 3. 重启服务器 cd Server python -m uvicorn app.main:app --reload ``` **验证:** 访问 `http://127.0.0.1:8000/` 应该自动跳转到 Shell 登录页 --- ## 🧹 清理命令 ### 清除客户端缓存 ```powershell Remove-Item -Recurse -Force "$env:APPDATA\DesignerCache" ``` ### 清除 CEP 扩展缓存 ```powershell Remove-Item -Recurse -Force "$env:APPDATA\Adobe\CEP\extensions\Designer" Remove-Item -Recurse -Force "$env:APPDATA\Adobe\CEP\extensions\Designer-dev" ``` --- ## 📁 重要目录 | 目录 | 说明 | |------|------| | `Designer/src/view/` | Core Vue 页面组件 | | `Designer/src/launcher/` | Shell 源代码(登录、更新器)| | `Designer/src/api/jsxApi/inline/` | 内联 JSX 函数 | | `Designer/dist_core/` | Core 构建输出 | | `Designer/dist/` | Shell 构建输出 | | `Server/Designer/dist/` | Shell 服务器部署目录 ⭐ | | `Server/archives/` | Core 版本 ZIP 包存放 | | `%APPDATA%\DesignerCache\` | 客户端 Core 缓存目录 | --- ## 🌐 URL 访问路径 | URL | 说明 | 文件位置 | |-----|------|---------| | `http://127.0.0.1:8000/` | 根路径(自动跳转) | 重定向到 Shell | | `http://127.0.0.1:8000/shell/` | Shell 登录页 | `Server/Designer/dist/` | | `http://127.0.0.1:8000/core/v1.2.4/` | Core 业务页 | `%APPDATA%\DesignerCache\v1.2.4\` | | `http://127.0.0.1:8000/api/v1/` | 后端 API | Server 代码 | | `http://127.0.0.1:8000/download/` | Core 下载 | `Server/archives/` | --- ## 🔧 开发新功能 ### 📝 添加纯前端 JSX 功能 #### 1. 在 layer.ts 添加函数 ```typescript // Designer/src/api/jsxApi/inline/layer.ts export async function 新功能(): Promise { const jsx = ` try { // JSX 代码 return JSXUtils.stringify({ success: true }); } catch (error) { return JSXUtils.stringify({ error: error.toString() }); } `; return evalInlineJSX(jsx); } ``` #### 2. 在 Home.vue 调用 ```typescript import * as Layer from '@/api/jsxApi/inline/layer'; const handle新功能 = async () => { const res = await Layer.新功能(); if (res.success) { Message.success('成功'); } }; ``` --- ### 🔐 添加混合架构功能(前端 + 后端) **适用场景:** 需要保护核心算法、AI 计算、复杂数学模型等 #### 1. 后端实现(Server/app/api/v1/jsx_demo.py) ```python class YourFeatureRequest(BaseModel): param1: str param2: int @router.post("/your-feature") async def your_feature( request: YourFeatureRequest, x_api_key: Optional[str] = Header(None) ): # 验证 API Key if not validate_api_key(x_api_key): raise HTTPException(403, "无效的 API Key") # 🔒 核心算法(客户端看不到) result = complex_algorithm(request.param1, request.param2) return {"success": True, "result": result} ``` #### 2. 前端实现(Designer/src/api/jsxApi/inline/your-feature.ts) ```typescript export async function yourFeature(param1: string, param2: number): Promise { // 1. 发送到服务器计算 const response = await fetch(`${config.apiBaseUrl}/jsx_demo/your-feature`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': 'demo_key_123' // 🔐 API Key }, body: JSON.stringify({ param1, param2 }) }); const serverResult = await response.json(); // 2. 应用服务器结果到 PS const jsx = ` // 使用 serverResult 执行 PS 操作 `; return evalInlineJSX(jsx); } ``` **参考文档:** - `tempdocs/framework_guide.md` - 完整框架说明 - `tempdocs/quick_start_template.md` - 快速开发模板 --- ## 🧪 测试命令 ### 测试混合架构 Demo ```bash # 1. 启动后端 cd D:\main\DesignerCEP\Server python -m uvicorn app.main:app --reload # 2. 在 PS 中创建图层,名称为数学表达式 # 如:87-98, 100+200 # 3. 点击"智能配色"按钮 # 前端会获取图层名称 → 发送到服务器计算 → 显示结果 ``` ### 测试 API Key 验证 ```bash # 使用 curl 测试 curl -X POST http://127.0.0.1:8000/api/v1/jsx_demo/calculate \ -H "Content-Type: application/json" \ -H "X-API-Key: demo_key_123" \ -d '{"expression": "87-98"}' ``` --- ## 🔄 完整发布流程 ### 发布新版本 Core ```bash # 1. 修改代码 # 2. 构建 + 打包 + 更新数据库(一键完成) cd D:\main\DesignerCEP python auto_deploy_core.py --version v1.2.5 --update-db # 3. 清除客户端缓存(测试用) Remove-Item -Recurse -Force "$env:APPDATA\DesignerCache" # 4. 重新登录测试 ``` ### 更新 Shell ```bash # 1. 构建 Shell cd D:\main\DesignerCEP\Designer npm run build:shell # 2. 部署到服务器 cd .. Copy-Item -Path "Designer\dist" -Destination "Server\Designer\dist" -Recurse -Force # 3. 重启后端(如果使用 --reload 会自动重启) ``` --- ## 📚 相关文档 | 文档 | 说明 | |------|------| | `混合架构开发框架指南.md` | 混合架构框架完整指南 | | `混合架构快速开发模板.md` | 5 分钟快速开发模板 | | `混合方案Demo说明.md` | 混合方案 Demo 说明 | | `许可证验证接口文档.md` | 许可证验证接口文档 | | `后端部署Shell指南.md` | Shell 服务器部署指南 | | `API密钥使用指南.md` | API Key 使用指南 |