1.0.6 • Published 1 year ago

mt-eslint-config v1.0.6

Weekly downloads
-
License
-
Repository
github
Last release
1 year ago

@youngjuning/eslint-config

a powerful esLint config based on airbnb

Please remove your eslint、prettier plugin first. All in @youngjuning/eslint-config

Prettier

Dependencies:

$ yarn add @youngjuning/prettier-config -D

Config:

// .prettierrc.js
module.exports = require('@youngjuning/prettier-config');

Base

support .js、.ts

Dependencies:

$ yarn add -D @youngjuning/eslint-config

Config:

// .eslintrc.js
module.exports = {
  extends: ['@youngjuning/eslint-config']
}

React

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']
}

React Native

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']
}

Vue

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']
}

miniprogram

support .js、.ts

Config:

// .eslintrc.js
module.exports = {
  extends: ['@youngjuning/eslint-config/miniprogram']
}

html

support .js、.ts、.html

Dependencies:

$ yarn add -D eslint-plugin-html

Config:

// .eslintrc.js
module.exports = {
  extends: [...,'@youngjuning/eslint-config/html']
}

More Config

.eslintignore

!.eslintrc.js
!.prettierrc.js

.editorconfig

# 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

husky & lint-staged

$ 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"
    ]
  },
}

vscode eslint 配置

禁用 formatOnSave,开启 source.fixAll.eslint

{
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  // 建议直接删掉 Prettier 插件
  "prettier.disableLanguages": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "vue"
  ],
}

git autocrlf

为了解决换行符冲突的问题,强烈建议设置 core.autocrlfinput。为什么这么做请读一下 Git 多平台换行符问题(LF or CRLF)

$ git config --global core.autocrlf input

Related repos