如何在VS Code中为JS模块脚本配置ESLint并启用默认严格模式
解决ESLint在ES模块中不响应严格模式的问题
核心原因
ES模块(通过<script type="module">引入的JS文件)本身默认运行在严格模式下,手动添加"use strict";属于冗余代码,这也是ESLint未响应该声明的关键原因。
配置修改方案(无需手动添加"use strict")
修改项目根目录的eslint.config.js,明确指定代码类型为ES模块,让ESLint自动按严格模式校验:
import globals from "globals"; import pluginJs from "@eslint/js"; export default [ { languageOptions: { globals: globals.browser, ecmaVersion: "latest", // 适配最新ES语法特性 sourceType: "module" // 声明当前为ES模块,ESLint自动启用严格模式校验 }, rules: { // 禁止手动添加"use strict"(模块默认严格,冗余代码会触发报错) "strict": ["error", "never"] } }, pluginJs.configs.recommended, ];
配置细节说明
sourceType: "module":告诉ESLint当前代码是ES模块,此时ESLint会自动应用所有严格模式的校验规则,无需手动添加"use strict";。"strict": ["error", "never"]:将手动添加的"use strict";标记为错误,避免冗余代码,同时确保ESLint严格执行严格模式的校验逻辑。
验证配置生效
保存配置后,重启VS Code(或打开命令面板执行ESLint: Restart ESLint Server),此时ESLint会严格检测不符合严格模式的代码问题,比如:
- 未声明变量直接赋值
- 使用
delete操作符删除普通变量 - 使用八进制字面量(如
0123)
若需强制检测手动添加的"use strict"(不推荐)
如果一定要让ESLint强制检查手动添加的"use strict";,可将strict规则修改为:
"strict": ["error", "always"]
注意:ES模块本身已默认启用严格模式,这种配置会强制要求冗余的严格声明,不符合ES模块规范,不建议使用。
内容的提问来源于stack exchange,提问作者Jules
相关产品推荐
相关产品推荐

