ESLint常见错误

310 阅读1分钟

eslint运行在脚本和IDE语法检测2种情况。

  • 确保 eslint插件 和 项目eslint 版本一致
  • .vue,.ts 文件不生效,确保 *.{js,ts,vue} 中间没有空格
"lint-staged": {
 "*.{js,ts,vue}": [
   "eslint --fix",
   "git add"
 ],
}
  • windows 系统 GIT 拉取代码默认转换 CRLF (Windows 操作系统默认的文本换行符为 CRLF;Linux 以及 macOS 系统默认使用 LF,早期的 mac os 系统使用 CR 换行),eslint提示错误
# 1. 禁止windows下git的默认转换
$ git config --global core.autocrlf false
# 2. vscode里面设置默认行尾字符 \n
  • package.json 里面 scripts 上添加 lint 命令,路径使用 glob 模式,必须添加引号
{
  "scripts": {
		"lint": "eslint 'src/**/*.{js,vue}'"
  }
}
  • 如果想忽略指定目录,请添加.eslintignore文件配置
  • vscode 修改 eslint 配置后,如果不生效重启一下
  • 确保 vscode 版本最新,vscode 语法错误提示 eslint 的运行环境是内置的 node ,版本太低可能会报错
  • vscode 里面 eslint 不工作,运行提示找不到依赖,看下 vscode 工作区是否根目录,如果是多个项目,eslint运行是相对于 cwd ,在单个项目中添加 .vscode/settings.json
{
  "eslint.workingDirectories": [
      "./frontend"
  ]
}
  • eslint默认是全量检测,但是可以配置 --cache 缓存已经处理的文件信息,以便只处理修改过的文件,也可以通过 lint-staged
{
  "lint-staged": {
    "src/**/*.{vue,js,jsx,ts,tsx}": [
      "eslint --max-warnings=0 --fix",
      "git add"
    ]
  },
}
  • 如果原先已经安装过eslint插件,现在切换配置,需要校验一下新规则是否生效,通过手动执行一下eslint命令,查看新规则是否生效