VSCode自动保存需设files.autoSave为afterDelay、onFocusChange或onWindowChange之一,选afterDelay时必须同步配置files.autoSaveDelay(如1000),否则可能失效;工作区设置、文件排除及格式化插件干扰也会导致不生效。

VSCode 本身不依赖插件实现自动保存,files.autoSave 是内置功能,开对配置就能用;离线配 Vue 环境的关键也不是“装插件”,而是让 Volar 正确接管 .vue 文件、TS 类型能加载、且 CLI 工具本地可用——网络断了,但配置和二进制得提前铺好。
怎么配 files.autoSave 才真正生效
这个设置不是开关,是枚举值,选错或漏配就等于没开:
-
files.autoSave必须设为afterDelay、onFocusChange或onWindowChange之一,off是默认值,别信“好像开了” - 选
afterDelay时,files.autoSaveDelay必须显式设(比如1000),否则延迟为 0,每敲一个字符都写盘,机械硬盘或 WSL 下明显卡顿 - 项目根目录有
.vscode/settings.json?它会覆盖用户级设置,打开命令面板运行Preferences: Open Workspace Settings (JSON)确认当前生效的是哪一份 - 如果用了
editor.formatOnSave,而 Prettier 或 ESLint 找不到配置(比如没.prettierrc或.eslintrc.cjs),VS Code 可能静默跳过保存——先关掉格式化,验证纯自动保存是否工作
Volar 在离线环境里为什么“不接管” .vue
不是插件没装,是 VSCode 没把语言服务派给它:
- 右下角语言模式显示 “Vue (Vetur)” 或只有 “Vue”?必须点它 →
Configure File Association for '.vue'→ 选Volar(不是带括号的旧名) - 检查插件作者是不是
johnsoncodehk,别装到已废弃的Volar Beta或名字近似的假货 - 离线机器上,
node_modules/@vue/language-core很可能缺失——哪怕你不用它写代码,Volar 运行时要读这个包。在有网机器上npm install -D @vue/language-core,连同node_modules整个拷过去 - 确认
tsconfig.json里有"types": ["vue"],且"include"包含"src/**/*.vue",否则 Volar 的模板类型推导直接失效
离线创建 Vue 项目,vue create 报 command not found 怎么办
这不是 VSCode 的问题,是 @vue/cli 根本没装进系统 PATH:
立即学习“前端免费学习笔记(深入)”;
- 别指望
npm install -g @vue/cli在离线机上跑通——必须提前在有网机器上全局安装,然后把整个node_global目录(你用npm config set prefix设的那个路径)原样拷到离线机对应位置 - 拷完后,手动把该路径加进系统
PATH环境变量(Windows 控制面板 → 系统 → 高级 → 环境变量;macOS/Linux 编辑~/.zshrc或~/.bash_profile) - 终端执行
which vue(macOS/Linux)或where vue(Windows),确认返回的是你刚拷过去的路径 - 更轻量的替代方案:用 Vite。提前下载
create-vite的.tgz包(npm pack create-vite),离线机上npm install -g 路径/create-vite-5.0.0.tgz,再运行create-vite my-app --template vue
为什么改了 .vue 模板,热更新不触发
HMR 卡住,90% 和 Volar 的 TS 版本脱节有关:
- 看 VS Code 窗口右下角:显示的是
TypeScript Version: Bundled?必须是项目本地的版本(比如5.4.5),否则类型检查和 HMR 都不同步 - 按
Ctrl+Shift+P→ 输入Typescript: Select TypeScript Version→ 选Use Workspace Version - 如果用了 pnpm,确保
pnpm add -D typescript已执行,且node_modules/typescript存在;Volar 不会自己从全局找 TS - 禁用所有非必要插件(尤其 Auto Rename Tag、Import Sorter),重启 VS Code 后再试;冲突常表现为修改模板后浏览器无反应,但终端里
vite进程明明在跑
离线环境最易被忽略的点:Volar 的语言服务启动依赖 @vue/language-core 和本地 TypeScript 实例,这两样不落地,插件图标再亮也没用;自动保存看似简单,但 files.autoSaveDelay 和 editor.formatOnSave 的组合一旦出错,就会变成“以为存了,其实没存”。


















