UNPKG

eslint-config-blockabc

Version:

A All-in-One eslint config project based on Standard Style

113 lines (89 loc) 3.27 kB
# eslint-config-blockabc ![npm](https://img.shields.io/npm/v/eslint-config-blockabc?color=%23ff00) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com) An All-in-One ESLint [Shareable Config](http://eslint.org/docs/developer-guide/shareable-configs) project, based on [Standard Style](https://standardjs.com/). This project including ESLint Config for JavaScript, TypeScript, Vue, Nuxt. ## Usage ### JavaScript 1. install ```bash 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 ``` 2. Add this to your .eslintrc file ```json { "extends": ["blockabc"] } ``` ### Typescript Build on **[JavaScript](#javascript)**: ```bash npm install typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser -D ``` ```json { "extends": ["blockabc/typescript"] } ``` ### Vue Build on **[JavaScript](#javascript)**: ```bash npm install vue-eslint-parser eslint-plugin-vue eslint-config-standard-jsx eslint-plugin-react -D ``` ```json { "extends": ["blockabc/vue"] } ``` ### Nuxt Build on **[Vue](#vue)**: ```bash npm install eslint-plugin-nuxt -D ``` ```json { "extends": ["blockabc/nuxt"] } ``` ### Vue-TypeScript Build on **[Vue](#vue)** & **[TypeScript](#typescript)** ```json { "extends": ["blockabc/vue-ts"] } ``` ### Nuxt-TypeScript Build on **[Nuxt](#nuxt)** & **[TypeScript](typescript)** ```json { "extends": ["blockabc/nuxt-ts"] } ``` ## FAQ 1. Sequence in eslintrc's `extends` field is important. Your config should always be the last one in `extends` array. [https://github.com/eslint/eslint/issues/9191](https://github.com/eslint/eslint/issues/9191) 2. You can run `eslint --print-config [file]` to see active eslint rules for specific file. ## Notable ### Vue 1. props 要有默认值 ### JavaScript 1. 函数定义的括号之前要有空格。 除了社区规范和风格倾向,该规则可以方便代码搜索:搜 `func(` 可以搜到所有函数调用,搜 `func (` 可以搜到函数定义。 ## Todo 1. [vue/require-default-prop](https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/require-default-prop.md) 按理说 String 类型的 props 应该也可以没有默认值。可以给 eslint-plugin-vue 提一个 PR。 2. [vue/mustache-interpolation-spacing](https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/mustache-interpolation-spacing.md) 该规则要求插值的花括号两边有空格,但是是否是必须的呢?这样风格上的好处和坏处分别是什么? 3. vue slots/event 可以增加一个规则,使得所有的 slots 和 events 都必须显式地在 vue 配置上写出,方便后续维护者知道该组件的 "API"。 ```js export default { events: ['input', 'change'], slots: ['default', 'title'], mounted() { this.$emit('input', 0) } } ``` 4. vue/attributes-order 该规则有点奇怪,没有按照 order 的意图去排序,代码应该是有问题的,有时间可以去看一下,提个 PR。 [attributes-order.js](https://github.com/vuejs/eslint-plugin-vue/blob/5d26e943bcba5544d820e9152a796582cc9a4beb/lib/rules/attributes-order.js)