前端一键部署 SFTP
English · 中文

一个面向前端团队的 VSCode 部署插件:把本地构建产物(dist)打包成 zip,通过 SFTP 一键上传到服务器并自动解压,告别手写 scp / rsync 脚本和反复配置服务器凭据。
✨ 核心特性
- 一键部署:侧边栏点一下,自动完成「打包 → 上传 → 解压」
- 多项目多环境:一个窗口统管所有项目与测试 / 生产环境
- 构建联动:可选「先构建再部署」,自动执行
npm run build
- 进度可视化:实时显示上传百分比,可随时取消
- 旧版本备份:每次部署前自动备份,方便回滚
- 远程命令:部署完成后可自动执行 shell(如
nginx -s reload)
- 生产保护:生产环境部署前强制二次确认
- 可视化配置:内置表单,无需手写 JSON
📦 安装
在 VSCode 扩展面板搜索 「前端一键部署」 或 「SFTP 部署」,点击安装。
或通过 .vsix 离线安装:
code --install-extension frontend-sftp-deploy-0.0.1.vsix
🚀 快速开始
- 打开面板:点击活动栏 🚀 图标「前端一键部署」
- 添加项目:点击侧边栏 +,填写项目名、本地根目录、构建命令
- 添加环境:右键项目 → 「添加环境」,填写服务器地址、用户名、认证方式、远程目录
- 一键部署:点击环境节点旁的 🚀(仅上传)或 📦(构建并部署)
- 查看进度:右下角通知显示上传进度,底部状态栏可随时取消
💡 首次建议先配一个 test 环境试部署,流程跑通后再配 prod。
⚙️ 配置
所有配置集中存放在一个 JSON 文件中,跨工作区共享。两种管理方式:
- 可视化表单(推荐):点击侧边栏 📓 图标打开「配置面板」
- 直接编辑 JSON:命令面板执行「打开配置文件(JSON)」,保存后自动同步到侧边栏
项目字段
| 字段 |
必填 |
说明 |
name |
✅ |
项目显示名,全局唯一 |
localRoot |
✅ |
项目根目录绝对路径(含 package.json) |
distDir |
❌ |
构建产物目录(相对 localRoot),默认 dist |
buildCommand |
❌ |
构建命令,如 npm run build |
环境字段
| 字段 |
必填 |
说明 |
name |
✅ |
环境名,如 test / prod |
host |
✅ |
服务器地址 |
username |
✅ |
SSH 用户名 |
privateKey |
❌ |
私钥路径(推荐),与 password 二选一 |
password |
❌ |
密码(明文存储),与 privateKey 二选一 |
remotePath |
✅ |
远程部署目标目录 |
port |
❌ |
SSH 端口,默认 22 |
backup |
❌ |
部署前备份旧版本,默认 true |
postDeploy |
❌ |
部署后执行的远程命令 |
isProd |
❌ |
标记生产环境,部署前二次确认 |
VSCode 设置
| 设置项 |
默认值 |
说明 |
cscs-deploy.confirmProd |
true |
生产环境部署前二次确认 |
cscs-deploy.defaultBuildCommand |
npm run build |
项目未指定时的默认构建命令 |
cscs-deploy.zipLevel |
6 |
zip 压缩级别(0-9,越大压缩率越高越慢) |
🔒 安全提示
- 推荐使用私钥(
privateKey)而非密码
- 生产环境务必开启
isProd 标记 + 二次确认
- 配置文件含服务器凭据,切勿提交到 Git 或公共仓库
❓ 常见问题
部署时报「服务端未安装 unzip」?
服务器执行 yum install -y unzip(CentOS)或 apt-get install -y unzip(Ubuntu)。
解压后文件多了一层 dist 目录?
不会。打包时已去除 dist 前缀,解压即直接落到 remotePath。
如何回滚?
旧版本自动备份在 remotePath.bak.<时间戳>,登录服务器改名还原即可。
支持 FTP 吗?
暂不支持,当前仅支持 SFTP / SSH。
📄 许可证
MIT
| |