An All-in-One ESLint Shareable Config project, based on Standard Style.
This project including ESLint Config for JavaScript, TypeScript, Vue, Nuxt.
- install
npm install eslint-config-blockabc eslint @babel/eslint-parser eslint-config-standard eslint-plugin-import eslint-plugin-node eslint-plugin-promise eslint-plugin-standard -D
- Add this to your .eslintrc file
{
"extends": ["blockabc"]
}
Build on JavaScript:
npm install typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser -D
{
"extends": ["blockabc/typescript"]
}
Build on JavaScript:
npm install vue-eslint-parser eslint-plugin-vue eslint-config-standard-jsx eslint-plugin-react -D
{
"extends": ["blockabc/vue"]
}
Build on Vue:
npm install eslint-plugin-nuxt -D
{
"extends": ["blockabc/nuxt"]
}
Build on Vue & TypeScript
{
"extends": ["blockabc/vue-ts"]
}
Build on Nuxt & TypeScript
{
"extends": ["blockabc/nuxt-ts"]
}
- Sequence in eslintrc's
extends
field is important. Your config should always be the last one inextends
array. eslint/eslint#9191 - You can run
eslint --print-config [file]
to see active eslint rules for specific file.
- props 要有默认值
- 函数定义的括号之前要有空格。
除了社区规范和风格倾向,该规则可以方便代码搜索:搜 func(
可以搜到所有函数调用,搜 func (
可以搜到函数定义。
按理说 String 类型的 props 应该也可以没有默认值。可以给 eslint-plugin-vue 提一个 PR。
该规则要求插值的花括号两边有空格,但是是否是必须的呢?这样风格上的好处和坏处分别是什么?
- vue slots/event
可以增加一个规则,使得所有的 slots 和 events 都必须显式地在 vue 配置上写出,方便后续维护者知道该组件的 "API"。
export default {
events: ['input', 'change'],
slots: ['default', 'title'],
mounted() {
this.$emit('input', 0)
}
}
- vue/attributes-order
该规则有点奇怪,没有按照 order 的意图去排序,代码应该是有问题的,有时间可以去看一下,提个 PR。 attributes-order.js