sublime text 本身不支持一键部署,必须依赖外部工具链实现:sftp插件仅单向同步文件,缺乏校验、锁机制与回滚;真正自动化需通过build system调用shell脚本或npm script,执行构建、同步、远程操作及健康检查等完整流程。

Sublime Text 本身不提供“一键部署”能力,所谓一键,本质是把本地构建、校验、传输、远程执行等环节串起来,由编辑器触发——但真正干活的是外部命令,不是 Sublime。
为什么不能直接用 SFTP 插件当部署工具
SFTP 插件(如 SFTP)能上传文件,但它默认只做单向同步,不校验、不锁文件、不回滚、不触发远程构建。你改了 src/index.js,它传过去,但没清缓存、没重启服务、没跑 npm test,线上可能直接报错。
- 它不会跳过
node_modules或.git目录,除非你在sftp-config.json里显式配置"exclude_patterns" - 上传失败时只弹提示,不终止后续步骤,容易漏掉关键文件
- 没有原子性:上传中途断连,远程目录处于半更新状态
- 不支持环境变量切换(比如 dev/staging/prod 的不同
API_BASE_URL)
用 Build System 触发真实部署流程
真正的自动化得靠 Sublime 的 sublime-build 文件调用 shell 脚本或 npm script,让 Sublime 只当“启动按钮”。例如:
{
"shell_cmd": "npm run deploy:staging",
"working_dir": "$project_path",
"variants": [
{
"name": "Deploy to Prod",
"shell_cmd": "npm run deploy:prod && echo '✅ Deployed to production'"
}
]
}
这个 deploy:staging 脚本里该做的事,SFTP 插件一个都干不了:
- 先运行
npm run build生成dist/ - 用
rsync --delete同步,排除node_modules和源码文件 - 通过
ssh user@host 'cd /var/www && git pull && npm ci && pm2 reload app'执行远程操作 - 最后调用健康检查接口,失败则自动回滚上一版
dist/备份
常见错误:保存即部署 vs 按需部署
有人装了 Save Actions 插件,配成“保存时执行 build”,再加个“保存后上传”。这很危险:
- 本地未 commit 就推到线上,版本不可追溯
- 保存一个 CSS 文件就触发整站部署,浪费资源且易出错
- 没区分开发/测试/生产环境,
process.env.NODE_ENV会被忽略 - Build System 默认在后台静默执行,失败也不提醒——得加
"target": "terminus_exec"并配Terminus插件才能看到输出
必须手动干预的三个环节
再完善的自动化也绕不开人工确认点:
-
git status是否干净?部署脚本应拒绝 dirty working tree,但 Sublime 不会帮你弹窗问“确定要部署未提交代码吗?” - 环境变量是否加载正确?
.env.production文件是否被.gitignore排除?Sublime 不解析 dotenv - 远程服务器磁盘是否足够?
df -h得自己写进部署脚本里,否则rsync传到一半失败,没人知道是空间满了
这些不是 Sublime 的缺陷,而是部署这件事本身就有边界——编辑器负责写和触,执行和兜底得靠脚本和运维规范。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










