AIGC:
ContentProducer: '001191110102MAD55U9H0F10002'
ContentPropagator: '001191110102MAD55U9H0F10002'
Label: '1'
ProduceID: 'f5f7934e-25b2-44aa-be59-7a77aee8a8a4'
PropagateID: 'f5f7934e-25b2-44aa-be59-7a77aee8a8a4'
ReservedCode1: 'ea588090-1cc0-493b-a183-77f6f6a95a08'
ReservedCode2: 'ea588090-1cc0-493b-a183-77f6f6a95a08'
One Click Deploy SFTP — 一键部署
在 VS Code 中管理多台 SSH 服务器与多个项目,一键完成 构建 → SFTP 上传 → 部署后命令 的完整发布流程。主机与项目相互独立、自由组合,适合前端项目、静态站点等需要经常发布到服务器的场景。
English: One Click Deploy manages SSH hosts and projects separately, then deploys with one click: build, upload via SFTP, and run post-deploy commands on the remote server.
功能特性
- 主机与项目分离管理:左侧活动栏新增「部署服务」面板,主机列表与项目列表独立维护
- 一键部署流水线:自动执行
构建命令 → 校验构建产物 → SFTP 上传 → 执行远程部署命令
- 表单化配置:添加/编辑主机和项目均使用表单窗口,所有字段一目了然
- 智能构建命令:选择项目目录后自动读取
package.json 的 scripts,可下拉选择构建命令
- 测试连接:保存前即可一键测试 SSH 连接是否可达
- 内置 SSH 终端:在主机上右键即可打开 SSH 交互式终端,无需手动输密码
- 导入 / 导出配置:配置可备份为 JSON 文件,换机、多人协作时一键迁移,支持"包含密码/不含密码"两种导出方式
- 排除规则与远程清理:支持排除
.git、node_modules 等文件,可选清理远程多余旧文件
快速开始
- 安装扩展后,点击左侧活动栏的「部署服务」图标
- 在「主机」列表点击
+ 添加服务器:填入 IP、端口、用户名、密码(或私钥路径)
- 在「项目」列表点击
+ 添加项目:选择项目目录、构建命令、构建产物目录、远程目标目录,并绑定默认主机
- 点击项目上的 🚀 图标即可一键部署
部署流程说明
点击部署后,扩展按以下顺序执行,全过程日志输出在「Cloud Deploy」输出面板:
- 构建:在项目目录执行构建命令(如
npm run build),未配置则跳过
- 校验:检查构建产物目录/文件是否存在且非空,避免把空目录发布上线
- 上传:通过 SFTP 将构建产物上传到远程目标目录,支持文件或整目录
- 收尾:可选执行远程命令(如重启服务
sh /home/app/start.sh、nginx -s reload)
导入 / 导出配置
配置(主机 + 项目)存储于 VS Code 用户设置中,可随时迁移:
- 导出:主机列表右上角点击
↑(Export),选择保存位置生成 deploy-configs.json
- 包含密码(完整备份):导出文件含明文密码,仅建议用于本机备份,请妥善保管
- 不含密码(安全分享):密码字段导出为空,可放心分享给同事,导入后重新填写各主机密码即可
- 导入:主机列表右上角点击
↓(Import),选择此前导出的 JSON 文件
- 替换:清空现有配置,完全以导入内容为准
- 合并:保留现有配置,按名称去重后追加导入内容
设置项
配置也可直接在 settings.json 中维护(通过扩展界面添加/编辑会自动写入):
{
// SSH 主机列表
"deployPlugin.hostConfigs": [
{
"id": "host-xxx",
"name": "生产服务器",
"host": "192.168.1.10",
"port": 22,
"username": "root",
"password": "",
"privateKeyPath": "~/.ssh/id_ed25519",
"remotePath": "/var/www"
}
],
// 项目列表
"deployPlugin.projectConfigs": [
{
"id": "prj-xxx",
"name": "my-web",
"projectPath": "D:/Projects/my-web",
"buildCommand": "npm run build",
"sourcePath": "dist",
"targetPath": "/var/www/my-web",
"postDeployCommand": "nginx -s reload",
"hostId": "host-xxx",
"exclude": [".git", "node_modules", ".vscode"],
"deleteExtra": false
}
]
}
| 字段 |
说明 |
privateKeyPath |
私钥路径(密码留空时使用),支持 ~ 开头 |
buildCommand |
构建命令,留空表示直接上传现有产物 |
sourcePath |
构建产物目录或文件(相对项目目录),如 dist |
targetPath |
远程目标目录,未设置时回退到主机的 remotePath |
postDeployCommand |
上传完成后在远程执行的命令 |
exclude |
上传时排除的文件/目录 |
deleteExtra |
是否删除远程目录中本地不存在的多余文件(类 rsync --delete,请谨慎开启) |
安全提示
- 主机密码以明文存储在 VS Code 用户设置中,生产服务器建议优先使用私钥登录
- 「包含密码」导出的 JSON 文件同样为明文,请勿提交到 Git 仓库或随意传播
- 请勿将含有服务器密码的配置文件放在本扩展项目目录内,避免误打包发布
命令列表
| 命令 |
说明 |
One Click Deploy: Add Host |
添加主机 |
One Click Deploy: Edit Host |
编辑主机 |
One Click Deploy: Delete Host |
删除主机 |
One Click Deploy: Test Connection |
测试 SSH 连接 |
One Click Deploy: Open SSH Terminal |
打开 SSH 终端 |
One Click Deploy: Export |
导出配置 |
One Click Deploy: Import |
导入配置 |
One Click Deploy: Add Project |
添加项目 |
One Click Deploy: Edit Project |
编辑项目 |
One Click Deploy: Delete Project |
删除项目 |
One Click Deploy: Deploy |
一键部署项目 |
License
MIT
AI生成