ESLint中如何用glob模式指定要检测的文件

project-root
├── app
│   ├── lib
│   │   ├── foo.js
│   │   ├── fooSpec.js
│   ├── components
│   │   ├── bar.js
│   │   ├── barSpec.js
│   ├── .eslintrc.json
├── server
│   ├── server.js
│   ├── serverSpec.js
├── .eslintrc.json

现在有一个项目有如上目录结构,其中foo.js、bar.js、server.js中字符串采用双引号规则,fooSpec.js、barSpec.js、serverSpec.js中字符串采用单引号规则,那我们就需要对不同的文件使用不同的检查规则。我们进行如下配置:

module.exports = {
  "env": {
    "browser": true,
    "es6": true,
    "node": true
  },
  "extends": "eslint:recommended",
  "globals": {
    "Atomics": "readonly",
    "SharedArrayBuffer": "readonly"
  },
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module"
  },
  "rules": {
    "quotes": ["error", "double"]
  },
  "overrides": [
    {
      "files": ["./app/**/*Spec.js"], // 匹配app目录的子目录下所有命名以Spec结尾的js文件
      "excludedFiles": "./server/*.js", // 排除server目录下所有的js文件
      "rules": {
        "quotes": ["error", "single"] // 指定匹配文件规则
      }
    }
  ]
};

上面配置结果:foo.js、bar.js、server.js、serverSpec.js将采用双引号股则检查,fooSpec.js、barSpec.js将采用单引号规则检查。而serverSpec.js中字符串本身采用的是单引号,那么检查代码时将会报错。

如需修正错误,更改相关配置即可。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理