# GreaterWMS 打包说明 本项目提供了多种打包和部署方式,您可以根据需要选择合适的方式。 ## 方式一:创建桌面快捷方式(开发模式) 这是最简单的方式,适合开发环境使用。 ### 步骤: 1. **创建桌面快捷方式** ```powershell # 以管理员身份运行PowerShell,执行: .\create_shortcut.ps1 ``` 或者双击运行 `create_shortcut.ps1` 2. **使用快捷方式启动** - 双击桌面的 "GreaterWMS" 快捷方式 - 会自动启动后端服务(端口8008)和前端服务(端口8080) - 访问 http://localhost:8080 使用系统 ### 手动创建快捷方式(如果脚本失败) 1. 右键桌面 -> 新建 -> 快捷方式 2. 输入路径:`D:\code\vue\greater_wms\start_project.bat` 3. 命名为:`GreaterWMS` 4. 可以右键快捷方式 -> 属性 -> 更改图标(如果有图标文件) --- ## 方式二:使用Quasar打包成桌面应用(Electron) 项目已经配置好了Electron打包选项,可以打包成Windows安装包。 ### 前提条件 1. 确保已安装Node.js和npm 2. 在前端目录安装依赖: ```bash cd templates npm install ``` ### 打包步骤 1. **安装Electron模式** ```bash cd templates quasar mode add electron ``` 2. **构建Electron应用** ```bash # 开发模式测试 quasar dev -m electron # 打包成安装程序 quasar build -m electron ``` 3. **打包结果** 打包完成后,安装程序位于: ``` templates/dist/electron/Packaged/GreaterWMS Setup x.x.x.exe ``` 双击安装程序即可安装,安装后会自动在桌面和开始菜单创建快捷方式。 ### Electron配置说明 项目已配置了以下内容(在 `templates/quasar.conf.js` 中): - **应用ID**: `com.electron.greaterwms` - **产品名称**: `GreaterWMS` - **Windows打包格式**: NSIS安装程序(.exe) - **自动创建桌面快捷方式**: ✅ 已启用 - **允许自定义安装目录**: ✅ 已启用 --- ## 方式三:打包前端为静态文件(生产部署) 如果您想将前端打包成静态文件部署到Web服务器: ### 步骤 1. **构建前端** ```bash cd templates npm run build ``` 2. **构建结果** 静态文件位于:`templates/dist/spa/` 可以将这些文件部署到Nginx、Apache等Web服务器。 3. **配置后端** 确保Django设置中的 `ALLOWED_HOSTS` 包含您的域名。 --- ## 方式四:使用Docker打包(推荐用于生产) 如果需要完整的容器化部署,可以创建Docker配置: ### Dockerfile示例 **后端Dockerfile** (项目根目录): ```dockerfile FROM python:3.8 WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 8008 CMD ["daphne", "-b", "0.0.0.0", "-p", "8008", "greaterwms.asgi:application"] ``` **前端Dockerfile** (templates目录): ```dockerfile FROM node:14 as build WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build FROM nginx:alpine COPY --from=build /app/dist/spa /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` ### 使用Docker Compose 创建 `docker-compose.yml`: ```yaml version: '3' services: backend: build: . ports: - "8008:8008" frontend: build: ./templates ports: - "80:80" depends_on: - backend ``` --- ## 推荐方案对比 | 方案 | 适用场景 | 优点 | 缺点 | |------|---------|------|------| | 桌面快捷方式 | 开发/测试 | 简单快速,无需打包 | 需要手动启动服务 | | Electron打包 | 本地部署 | 一键启动,用户体验好 | 打包体积较大 | | 静态文件部署 | 生产环境 | 性能好,易部署 | 需要Web服务器 | | Docker | 生产环境 | 环境一致,易管理 | 需要Docker环境 | --- ## 注意事项 1. **端口冲突**:确保8008和8080端口未被占用 2. **数据库**:根据实际情况配置数据库(SQLite/PostgreSQL) 3. **环境变量**:生产环境建议配置环境变量而非硬编码 4. **安全设置**:生产环境应将 `DEBUG = False` --- ## 故障排除 ### 如果启动脚本无法运行 1. **检查执行策略**(PowerShell) ```powershell Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser ``` 2. **使用批处理文件**:直接运行 `start_project.bat` ### 如果Electron打包失败 1. 确保已安装所有依赖:`npm install` 2. 清理缓存:`npm cache clean --force` 3. 删除 `node_modules` 重新安装 ### 如果端口被占用 修改配置文件: - 后端端口:修改 `backend_start windows.ps1` 中的端口号 - 前端端口:修改 `templates/quasar.conf.js` 中的 `devServer.port` --- 如有问题,请查看项目文档或提交Issue。