a powerful esLint config based on airbnb
Please remove your eslint、prettier plugin first. All in @youngjuning/eslint-config
Dependencies:
$ yarn add @youngjuning/prettier-config -D
Config:
// .prettierrc.js
module.exports = require('@youngjuning/prettier-config');
support .js、.ts
Dependencies:
$ yarn add -D @youngjuning/eslint-config
Config:
// .eslintrc.js
module.exports = {
extends: ['@youngjuning/eslint-config']
}
support .js、.ts、.jsx、.tsx、.html
Dependencies:
$ yarn add -D eslint-plugin-react \
eslint-plugin-react-hooks \
eslint-plugin-jsx-a11y \
eslint-plugin-import
Config:
// .eslintrc.js
module.exports = {
extends: ['@youngjuning/eslint-config/react']
}
support .js、.ts、.jsx、.tsx
Dependencies:
$ yarn add -D eslint-plugin-react \
eslint-plugin-react-hooks \
eslint-plugin-jsx-a11y \
eslint-plugin-import \
eslint-plugin-react-native
Config:
// .eslintrc.js
module.exports = {
extends: ['@youngjuning/eslint-config/react-native']
}
support .js、.ts、.vue
Dependencies:
$ yarn add -D @vue/cli-service eslint-plugin-vue @vue/eslint-config-airbnb
Config:
// .eslintrc.js
module.exports = {
extends: ['@youngjuning/eslint-config/vue']
}
support .js、.ts
Config:
// .eslintrc.js
module.exports = {
extends: ['@youngjuning/eslint-config/miniprogram']
}
support .js、.ts、.html
Dependencies:
$ yarn add -D eslint-plugin-html
Config:
// .eslintrc.js
module.exports = {
extends: [...,'@youngjuning/eslint-config/html']
}
!.eslintrc.js
!.prettierrc.js
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
quote_type = single
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[*.gradle]
indent_size = 4
[BUCK]
indent_size = 4
$ yarn add -D husky lint-staged
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"**/*.{js,jsx,ts,tsx}": [
"eslint --fix",
"git add"
],
// you can add wxml/html...
"**/*.{less,md,json}": [
"prettier --write",
"git add"
]
},
}
禁用 formatOnSave,开启 source.fixAll.eslint
{
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
// 建议直接删掉 Prettier 插件
"prettier.disableLanguages": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue"
],
}
为了解决换行符冲突的问题,强烈建议设置 core.autocrlf
为 input
。为什么这么做请读一下 Git 多平台换行符问题(LF or CRLF)
$ git config --global core.autocrlf input