文档
规则列表
http://eslint.cn/docs/rules/
一份标准规范
https://standardjs.com/
一份建议规范
https://juejin.im/post/5afede99f265da0b82630af8
栗子
一个现成的配置
https://github.com/AlloyTeam/eslint-config-alloy#typescript
IDE集成
可以打开autofix, 在vscode的setting.json里添加
// auto fix
"eslint.autoFixOnSave": true,
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "vue",
"autoFix": true
},
{
"language": "typescript",
"autoFix": true
},
{
"language": "typescriptreact",
"autoFix": true
}
],
Vue
parser
parser: 'vue-eslint-parser',
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
插件 eslint-plugin-vue
extends: [
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
'plugin:vue/essential',
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
'standard'
],
<script>
标签缩进
rules: {
"vue/script-indent": ["error", 2, { // script标签缩进设置
"baseIndent": 1, // 加一个基本缩进, 跟 WebStorm 的自动格式化一致
"switchCase": 0,
"ignores": []
}]
},
overrides: [
{
"files": ["*.vue"],
"rules": {
"indent": "off",
}
}
],
lint代码时见到的一些骚操作
no-async-promise-executor
executor 函数也可以是
async function
。然而,这通常是一个错误,原因如下:
- 如果异步 executor 函数抛出一个错误,这个错误将会丢失,并且不会导致新构造的
Promise
被拒绝。这可能使会调试和处理一些错误变得困难。- 如果一个 Promise executor 函数使用了
await
,这通常表示实际上没有必要使用new Promise
构造函数,或者可以减少new Promise
构造函数的范围。