# JNote-UI 打包部署文档 ## 项目结构 ``` jnote-ui/ ├── src/ # 前端源代码 ├── dist/ # 前端构建产物 ├── server/ # 后端服务 │ ├── src/ │ │ ├── index.js # 后端入口 │ │ ├── config/ # 配置文件 │ │ └── routes/ # 路由 │ ├── build.js # 打包脚本 │ ├── package.js # 分发包打包脚本 │ ├── start.js # 启动脚本 │ ├── .env # 环境配置 │ └── package.json └── package.json # 前端依赖 ``` --- ## 一、打包前端 ```bash npm install npm run build ``` 构建完成后会生成 `dist/` 目录。 --- ## 二、打包后端 ### 方式一:快速打包(生成可执行文件) ```bash cd server # 安装依赖 npm install # 打包 Linux 和 Windows 两个版本 node package.js ``` 打包完成后会生成 `server/release/` 目录: ``` release/ ├── README.txt ├── linux/ │ ├── jnote-api # Linux 可执行文件 │ ├── start.js # 启动脚本 │ └── .env # 环境配置 └── windows/ ├── jnote-api.exe # Windows 可执行文件 ├── start.js # 启动脚本 └── .env # 环境配置 ``` ### 方式二:仅打包 Linux 版本 ```bash cd server node build.js ``` --- ## 三、部署后端 ### Linux 服务器部署 将 `release/linux/` 目录上传到服务器: ```bash # 上传 scp -r release/linux/ user@your-server:/path/to/jnote/ # SSH 登录后 cd /path/to/jnote chmod +x jnote-api start.js ./start.js ``` ### Windows 服务器部署 将 `release/windows/` 目录上传到服务器: ```powershell cd windows node start.js ``` --- ## 四、配置 Nginx 后端 API 默认运行在 `http://localhost:3000`,前端静态文件通过 Nginx 提供。 ### Nginx 配置示例 ```nginx server { listen 80; server_name 你的域名或IP; # 前端静态文件 root /path/to/jnote-ui/dist; index index.html; # 前端路由(SPA) location / { try_files $uri $uri/ /index.html; } # API 反向代理 location /api/ { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` --- ## 五、常用命令汇总 ```bash # 1. 构建前端 npm install npm run build # 2. 打包后端(Windows/Linux 双版本) cd server npm install node package.js # 3. 上传 release/linux/ 到服务器后启动 chmod +x jnote-api start.js ./start.js # 4. PM2 管理(可选) pm2 start jnote-api --name jnote-api pm2 save pm2 startup # 5. PM2 常用命令 pm2 status # 查看状态 pm2 logs jnote-api # 查看日志 pm2 restart jnote-api # 重启 pm2 stop jnote-api # 停止 ``` --- ## 六、端口配置说明 ### 后端端口 在 `server/.env` 中配置: ```env PORT=3000 ``` ### 前端代理端口 在 `jnote-ui/.env` 中配置(与 server/.env 的 PORT 保持一致): ```env VITE_API_PORT=3000 ``` 如果后端端口改变,必须同时修改这两个文件。 --- ## 七、更新部署 ```bash # 1. 拉取最新代码 git pull # 2. 重新构建前端 npm run build # 3. 重新打包后端 cd server node package.js # 4. 上传新的 release/ 目录到服务器 # 5. 重启后端 pm2 restart jnote-api ```