standardjs在vscode中不能零配置生效,必须手动安装vscode-standard插件并确保项目本地安装standard;插件依赖standard二进制,不兼容eslint,需禁用eslint插件以避免冲突。

StandardJS 在 VSCode 里不能“零配置”生效,必须显式安装插件并确保本地 standard 可执行;所谓“零配置”仅指规则本身无需手动写 rules,但环境链路一环都不能少。
vscode-standard 插件必须手动安装且依赖本地 standard
VSCode 默认不带 StandardJS 支持,vscode-standard 是唯一能原生对接 Standard 风格的扩展。它不内置 standard,而是调用你项目中已安装的 standard、semistandard、ts-standard 或 standardx 二进制。
- 必须在项目根目录运行
npm install standard --save-dev(或yarn add standard -D),否则插件启动即报错"standard" command not found - 插件默认只查找工作区根目录下的
node_modules/.bin/standard,多包结构(如packages/foo)需在.vscode/settings.json中显式配置standard.workingDirectory - 不推荐全局安装
standard—— VSCode 插件默认不读全局 bin,且易与项目版本冲突
standard 规则不兼容 ESLint 插件,别混用
StandardJS 是独立于 ESLint 的工具链,它的规则集、修复逻辑、AST 解析器都不同。如果你同时启用了 VSCode 的 ESLint 插件和 vscode-standard,会出现:
- 同一行代码被两个插件重复标记(比如
semi和no-unused-vars同时报错) -
editor.codeActionsOnSave冲突:ESLint 的source.fixAll.eslint和 standard 的source.fixAll.standard无法共存,保存时只触发一个 - 禁用 ESLint 插件后,
vscode-standard才能接管全部提示与修复 —— 它不复用 ESLint 配置,也不读.eslintrc.js
standard 默认禁用分号,但 Vue/TS 项目需额外处理
StandardJS 强制 semi: false,这对纯 JS 没问题,但在 Vue 单文件组件或 TypeScript 中容易出问题:
- Vue 模板中的内联表达式(如
{{ item.name }})不涉及分号,但 script 区块若含 TS 类型断言(foo as string)或 JSX,可能因 ASI(自动分号插入)误判 - TS 项目需安装
ts-standard并在.vscode/settings.json中设"standard.engine": "ts-standard",否则类型注解会被当成语法错误 - Vue 文件需在插件设置中显式启用:
"standard.validate": ["javascript", "typescript", "vue"],否则.vue后缀文件完全不检查
常见失效原因:.standardrc 位置和内容太“干净”
vscode-standard 默认读取 .standardrc、package.json#standard 或 standard.config.js。但 StandardJS 的设计是「零配置」,意味着它根本不鼓励你写配置文件 —— 一旦你新建了空的 .standardrc,插件反而会加载一个空规则集,导致所有检查静默失效。
- 不要新建
.standardrc,除非你要覆盖极少数规则(如"global": ["cy"]) - 如果用了
standardx或自定义 parser,必须在.vscode/settings.json中指定"standard.engine"和"standard.parser",不能指望插件自动识别 - 检查是否被
.standardignore意外排除了当前文件 —— 它的行为和.eslintignore一致,但名称不同,容易忽略
真正卡住人的从来不是规则本身,而是 standard 进程是否被 VSCode 正确 spawn 出来、工作目录是否对得上、以及有没有另一个 lint 工具在后台抢信号 —— 这些底层链路不打通,再“标准”的风格也只是一堆灰色波浪线。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











