vscode 中配置 node.js 的 eslint,核心是确保本地 eslint 可执行且仅校验 .js 文件。需本地安装 eslint、使用 .eslintrc.cjs 配置并设 env: { node: true, es2021: true }、在 settings.json 中限定 "eslint.validate": ["javascript"] 并指定配置路径。

VSCode 里配 Node.js 的 ESLint,核心就一件事:让本地 eslint 命令能跑起来,并且只对 .js 文件生效,不碰 node_modules 或构建产物。
确认项目本地装了 eslint 并可执行
VSCode 的 ESLint 插件(dbaeumer.vscode-eslint)默认只找你项目根目录下的 node_modules/.bin/eslint。全局安装的 eslint 基本无效,尤其当你用 pnpm/yarn 或多个 Node 版本时。
- 在项目根目录运行
npm install eslint --save-dev(或yarn add eslint -D),确保node_modules/.bin/eslint存在 - 终端里执行
npx eslint --version,必须成功输出版本号;报错说明本地没装好,插件会静默失效 - 如果用 pnpm,检查
pnpm store是否隔离了二进制路径——可临时加"eslint.packageManager": "pnpm"到 VSCode 设置里
配置 .eslintrc.cjs 专用于 Node.js 环境
Node.js 脚本通常不带 JSX/TS,但容易误配 parser 或 env 导致 require is not defined 或 __dirname is not defined 这类报错。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 新建
.eslintrc.cjs(推荐,避免 ESM 模块冲突),内容用module.exports = { ... }导出 - 必须设
env: { node: true, es2021: true },不要加browser: true,否则require、__dirname会被标红 - 若项目含
import/export,需加parserOptions: { ecmaVersion: 'latest', sourceType: 'module' };否则保持sourceType: 'script' - 加
root: true,防止 ESLint 向上查找父目录配置,比如你打开的是子文件夹,却加载了公司级根配置
VSCode 设置里只校验 JS 文件,禁用无关类型
默认 eslint.validate 可能包含 typescript 或 typescriptreact,对纯 Node.js 项目不仅无用,还会因缺少 parser 报错。
- 在工作区
settings.json中明确写:"eslint.validate": ["javascript"] - 删掉
javascriptreact、typescript等项,避免插件尝试解析.ts文件却找不到@typescript-eslint/parser - 加
"eslint.options": { "overrideConfigFile": "./.eslintrc.cjs" },强制指定配置路径,防止 monorepo 或嵌套目录下加载错文件 - 检查状态栏右下角是否显示 ESLint 图标;点开若提示 “Disabled”,手动选 “Enable for Workspace”
保存时自动修复,但别让它改 require 顺序或 module.exports
editor.codeActionsOnSave 只能修复“可自动修复”的规则,比如分号、引号、空格;它不会重排 require 顺序,也不会把 module.exports 改成 export default。
- 启用:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true } - 注意:如果代码里有
const fs = require('fs')被标为 “require should be placed at top of file”,这是node/no-unsupported-features类规则,不能自动修复,需手动调整 - 避免和 Prettier 冲突:关掉
"editor.formatOnSave",只留 ESLint 修复;否则 Ctrl+S 时格式化两次,const变let、缩进错乱都可能发生
最常被忽略的是:ESLint 配置按文件路径向上查找,.eslintrc.cjs 必须放在项目根目录(即含 package.json 的地方),而不是 src/ 或 lib/ 下——放错位置,index.js 就完全不受控。










