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