# ssDeploy **Repository Path**: pudezhong/ss-deploy ## Basic Information - **Project Name**: ssDeploy - **Description**: webpack项目 centOS 7 + nginx 自动化部署 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-29 - **Last Updated**: 2024-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## webpack 的 dist 包 自动化部署 插件 ``` 本插件 是-只用 服务部署插件, 基于 centOS 7 + nginx 用于部署 webpack 生成的dist 包, 自动化部署到远程服务器,并实现自动重启nginx 服务 ``` ## 该插件 主要有三个 功能 ``` 1. 初始化服务器 可以自动联网 安装 nginx 环境; 可通过 nginx.conf 文件配置 远程服务器 nginx 的运行环境; 2. 远程服务器,自动创建 环境依赖文件-所需存放文件夹、自动创建 项目所需文件夹; 3. build 项目 为dist 文件 并压缩 为 dist.zip 文件 并上传到 远程服务器 指定目录下 /data/www/dist.zip ; 远程服务器 解压 dist.zip 文件 到 /data/www/dist 目录下; 重启 nginx 服务; 删除 远程服务器 指定目录下的30天以前的(自定义源码可改过期时间,默认30天) dist.zip 文件; 删除 本地 dist.zip 文件; ``` ## 安装 ``` npm i deploy-nginx-xxjss ``` ## 使用 ``` 插件初始化 会在 项目根路径 生成一个配置文件; /ssDeploy/deployConfig.js -> 服务器基本信息 和文件存放路径 /ssDeploy/nginx.conf -> nginx ,配置文件 ``` ## 命令解析 ``` 带有 ‘init’ 的命令 表示 该项目初始化命令,主要用于,创建 nginx 运行环境 和项目 存放路径; 已有 nginx 运行环境 和项目 存放路径 的项目 无需 执行 init 命令; "zip": "node src/zip.js", // 用于 压缩 dist 包 "nginx": "node src/nginx.js development",// 用于 安装 nginx 环境 并 部署到 远程服务器 -开发环境 "deploy": "yarn build && yarn zip && node src/deploy.js development",// 部署到 远程服务器 -开发环境 "test:nginx": "node src/nginx.js test",// 用于 安装 nginx 环境 并 部署到 远程服务器 -测试环境 "test:deploy": "yarn build && yarn zip && node src/deploy.js test",// 部署到 远程服务器 -测试环境 "pro:nginx": "node src/nginx.js production",// 用于 安装 nginx 环境 并 部署到 远程服务器 -生产环境 "pro:deploy": "yarn build && yarn zip && node src/deploy.js production"// 部署到 远程服务器 -生产环境 ``` ## 配置 远程服务器 ``` // =============================================== deploy.js============================== let nginxConfPath = '/usr/local/src/' // 配置创建安装包目录 let software = '/data/software'; // 配置远程服务器目录 let remoteDirectory = '/data/competition/web'; // 服务地址配置 let serverConfig; switch (args[0]) { case 'production': serverConfig = { host: '**.***.***.***', port: 22, username: 'root', password: '**************', }; break; case 'test': serverConfig = { host: '**.***.***.***', port: 22, username: 'root', password: '**************', }; break; case 'development': serverConfig = { host: '**.***.***.***', port: 22, username: 'root', password: '**************', }; break; default: console.error('连接异常:请重新执行dev:deploy、test:deploy、production:deploy'); process.exit(1); } // =============================================== nginx.conf============================== server { listen 80 ; // 监听端口 server_name localhost; // 服务器 地址 location ^~ /{ root /path/to your project path /web/dist; // 服务器 前端包地址 try_files $uri $uri/ /index.html; } location ^~ /api { rewrite ^/api(.*)$ $1 break; proxy_pass http://**.**.**; // 服务器 后端代理 地址 } } ```