离线安装Prettier支持Vue需完整迁移插件目录及node_modules,配置.prettierrc的overrides指定parser:"vue",并验证状态栏显示Prettier(vue)及Output日志。

离线安装 Prettier 这类代码美化插件,不能只拖个 .vsix 就完事——Vue 文件会直接报 Cannot parse unknown language,保存也不生效。核心问题不在安装动作本身,而在语言支持、依赖链和配置加载时机。
为什么 Prettier 在离线 Vue 项目里“装了却不动”
VSCode 的 esbenp.prettier-vscode 插件默认不识别 .vue 文件中的 <template> 和 <script setup> 块。它需要额外配置解析器 + 对应插件,而这些组件在离线时不会自动下载或激活。
- 离线环境下,插件首次启用时无法拉取
prettier-plugin-vue或@prettier/plugin-html等依赖 -
.prettierrc里没配overrides规则,VSCode 就按默认 JS 规则处理.vue,结果跳过格式化 - 即使装了插件,若 VSCode 默认格式化器(
vscode.typescript-language-features)没关,保存时会和 Prettier “抢格式”,导致样式反复横跳
离线安装 Prettier + Vue 支持的实操步骤
必须提前在有网机器上完成依赖固化,再整体迁移;不能靠内网机器单独装 .vsix。
- 在联网机器上:用 VSCode 打开一个
.vue文件 → 触发 Prettier 首次激活 → 它会自动下载prettier-plugin-vue到插件目录下的node_modules - 找到插件解压后完整目录:
~/.vscode/extensions/esbenp.prettier-vscode-9.10.0/(Linux/macOS)或%USERPROFILE%\.vscode\extensions\esbenp.prettier-vscode-9.10.0\(Windows) - 把整个文件夹拷到内网机器对应路径,**不要只拷
.vsix** - 同时手动下载并离线安装
prettier-plugin-vue的.vsix(如存在独立发布)或确认其已随主插件一并打包进node_modules
离线 Vue 项目必须写的 .prettierrc
仅靠 VSCode 设置项(settings.json)不可靠——离线时用户级设置可能被策略重置,且无法按文件类型差异化处理。必须放项目根目录。
立即学习“前端免费学习笔记(深入)”;
内容示例(JSON 格式,免 Node 依赖):
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"overrides": [
{
"files": "*.vue",
"options": {
"parser": "vue"
}
}
]
}
-
parser: "vue"是关键,否则 Prettier 拒绝处理.vue文件 - 不推荐
.prettierrc.js:离线环境无 Node 运行时,VSCode 无法执行该文件 - 如果项目还含 JSX/TSX,需在
overrides里追加对应规则,parser值分别为typescript、babel
验证是否真可用,别信扩展列表
打开内网机器上的 Vue 文件后,做三件事:
- 按
Ctrl+Shift+P输入Prettier: Format Document,看是否弹出成功提示 - 检查右下角状态栏:鼠标悬停应显示
Prettier (vue),不是Prettier (javascript) - 打开
View → Output,切换到Prettier输出通道,看是否有Formatting completed日志,而非空或报错
最易忽略的是:插件目录虽存在,但 node_modules/prettier-plugin-vue 缺失或架构不匹配(比如 x64 插件装在 arm64 VSCode 上),此时状态栏可能静默显示 Prettier,但实际不触发任何格式化。


















