uploadonsave仅对工作区根目录下能映射到remotepath的文件生效;需确保remotepath为绝对路径(如/var/www/html)、文件位于当前工作区、未被ignore规则匹配。

uploadOnSave 开启后不会自动同步所有文件,只对当前工作区中路径能映射到 remotePath 的文件生效。这是最常被忽略的前提条件。
为什么保存后没上传?检查这三件事
本地文件没传上去,大概率不是插件坏了,而是配置或路径没对上:
-
remotePath必须是远程服务器上的绝对路径(如/home/deploy/app),末尾不能加斜杠;如果填成./app或app/,插件会静默失败 - 你编辑的文件必须位于当前 VSCode 打开的文件夹内,且其相对路径要能“自然延伸”进
remotePath—— 比如remotePath是/var/www/html,而你打开的是/Users/me/project,那么project/src/index.js会传到/var/www/html/src/index.js;但如果remotePath是/var/www/html,而你正在编辑/tmp/test.js(不在工作区里),它根本不会触发上传 -
ignore规则用的是 glob 模式,且默认匹配整个路径;写"node_modules"不会生效,得写"**/node_modules/**"或"node_modules/**"
watcher 自动监听和 uploadOnSave 的区别
两者都可实现“改完就传”,但行为逻辑完全不同:
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
-
uploadOnSave是单次动作:仅在你按Ctrl+S时比对本地文件修改时间戳,上传变更文件(不删远程、不处理新增目录) -
watcher是后台进程:持续监听文件系统事件(创建、删除、重命名),配合"autoUpload": true可实现新建文件立即上传、删本地文件也删远程对应项——但需手动加配置块,且 macOS/Linux 下可能因权限或 inotify 限制失效 - 如果你开了
watcher却没效果,先确认插件是否支持当前 OS 的文件监视机制;Windows 用户一般无问题,macOS 上建议加"usePolling": true避免监听丢失
多环境切换时 defaultProfile 不设会怎样
配置了多个服务器(profiles)但没指定 defaultProfile,VSCode 启动后不会记住上次用的 profile,每次执行上传/下载命令前都得手动选一次。更麻烦的是:
- 右键菜单里的
Upload to SFTP Server会消失,只剩灰色选项 -
uploadOnSave失效——插件不知道该往哪传 - 命令面板搜
SFTP: Upload Folder会报错No active profile found - 解决办法很简单:在根级配置对象里加一行
"defaultProfile": "dev"(值为你 profiles 里某个 key),别漏掉引号
真正容易出问题的地方,是 remotePath 和本地项目结构之间的隐式映射关系——它不报错,也不提示,只是默默跳过同步。调试时打开 VSCode 底部状态栏,看有没有 SFTP 图标和连接状态;上传失败时留意右下角弹出的「SFTP: upload failed」通知,点开它才能看到真实错误路径。










