sublime text 不支持一键部署,需依赖sftp插件或外部工具链(如inotifywait+rsync);真正自动化需绕过编辑器,结合构建、校验、锁机制与回滚设计。

Sublime Text 本身不支持一键部署,得靠插件或外部工具链
Sublime Text 是个编辑器,不是部署平台。它没有内置的 FTP/SFTP 或远程执行能力,所谓“一键部署”必须借助第三方插件(如 SFTP)或外部脚本(如 rsync + make)。直接在 Sublime 里按个快捷键就把代码推到生产环境,背后一定绑定了某个可执行命令或配置好的连接通道。
SFTP 插件能同步文件,但默认不是“一键部署”,需手动触发上传
装好 SFTP 插件后,每个项目需配一个 sftp-config.json 文件,里面写明 host、user、remote_path 等。常见误操作包括:
-
remote_path写成/var/www/html/却没给用户写权限,上传失败但错误提示藏在右下角小字里 - 用
upload_on_save自动上传,结果本地未测试就直推生产,改错一个字符就挂站 - 没设
file_permissions和dir_permissions,PHP 文件传上去变成不可执行(比如 644 而非 644/755) - 配置里漏掉
"sync_down_on_open": false,一打开文件就从服务器拉旧版,覆盖本地修改
真正接近“一键”的操作是:保存后按 Ctrl+Shift+P → 输入 SFTP: Upload File,或者绑定快捷键到 sync_upload_file 命令。
想真做到“保存即上线”,得绕过 Sublime 直接用 inotifywait + rsync
依赖操作系统监听文件变化比依赖编辑器更可靠。适合 Linux/macOS 开发机,典型做法:
- 用
inotifywait -m -e close_write /path/to/project | while read; do rsync -avz --delete ./ user@prod:/var/www/app/; done - 把这段塞进后台进程(
nohup或 systemd service),避免关终端就停 - 加
--exclude=".git"和--exclude="node_modules"避免同步无关内容 - 生产环境务必禁用
rsync的--delete选项,或只对特定子目录启用,否则删库跑路
这种方式完全脱离 Sublime,编辑器怎么用都行,部署行为由系统级监听驱动,也更易加校验(比如先 ssh user@prod 'php -l file.php' 2>/dev/null 再同步)。
生产环境严禁直接同步代码,至少要加构建和校验环节
多数真实项目不能把本地源码原样扔到线上——需要编译(npm run build)、压缩(uglifyjs)、替换配置(envsubst)、甚至跑单元测试。Sublime 无法承载这些流程。
- 用
make deploy封装整套动作,Sublime 可绑定快捷键执行该命令 - 配置
sublime-build系统调用bash -c "cd /project && make deploy",输出直接显示在 Sublime 底部面板 - 关键路径必须加锁机制,比如部署前检查
/tmp/deploy.lock是否存在,防多开 Sublime 导致并发冲突 - 所有远程操作建议走 SSH key 认证 +
~/.ssh/config别名,别把密码或 host 写死在配置里
最常被忽略的是回滚能力:同步完发现炸了,得有 rsync -avz user@prod:/var/www/app.bak/ /var/www/app/ 这种快速还原路径,而这个步骤几乎从不被放进 Sublime 配置里。











