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中字符串本身采用的是单引号,那么检查代码时将会报错。
1.png
如需修正错误,更改相关配置即可。


记得要微笑
1.9k 声望4.5k 粉丝

知不足而奋进,望远山而前行,卯足劲,不减热爱。


引用和评论

0 条评论