1.2.4 • Published 5 years ago

eslint-config-xm v1.2.4

Weekly downloads
10
License
MIT
Repository
github
Last release
5 years ago

eslint-config-xm

Install

npm i -D eslint-config-xm

使用

// eslintrc.js 
module.exports = {
    extends: [
        //添加指定对应文件 'eslint-config-xm/react-native' 目前有 react、react-native、vue、typescript、默认标准配置 index 
        'eslint-config-xm'
    ],
    globals: {
        // 这里填入你的项目需要的全局变量
        // 这里值为 false 表示这个全局变量不允许被重新赋值,比如:
        //
        // jQuery: false,
        // $: false
    },
    rules: {
        // 这里填入你的项目需要的个性化配置,比如:
        //
        // // 一个缩进必须用两个空格替代
        // 'indent': [
        //     'error',
        //     4,
        //     {
        //         SwitchCase: 1,
        //         flatTernaryExpressions: true
        //     }
        // ]
    }
};

规则列表

名称包含规则解析器
标准规则ESLint 规则babel-eslint
ReactESLint 规则、eslint-plugin-reactbabel-eslint
VueESLint 规则、eslint-plugin-vuevue-eslint-parser
TypeScriptESLint 规则、@typescript-eslint@typescript-eslint/parser
TypeScript ReactESLint 规则、@typescript-eslint、eslint-plugin-react@typescript-eslint/parser
TypeScript ReactESLint 规则、airbnb、@react-native-community、 prettier/recommendedbabel-eslint

配置原则

  1. 能够帮助发现代码错误的规则,全部开启
  2. 配置不应该依赖于某个具体项目,而应尽可能的合理
  3. 帮助保持团队的代码风格统一,而不是限制开发体验

配置解读

  • 每一条配置都有一句话注释说明此配置的用途
  • 每个开启的配置都有对应的错误示例和正确示例
  • 每个示例都会在真实的 ESLint 脚本中运行,以保证报错项与配置一一匹配
  • 对于有争议的配置,都在注释中说明了为什么要这么配置的原因
  • 对于能够自动修复的配置,在注释中有标注了 @fixable

Troubleshootings

在 VSCode 中使用

在 VSCode 中,默认 ESLint 并不能识别 .vue.ts.tsx 文件,需要在「文件 => 首选项 => 设置」里做如下配置:

{
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        "vue",
        "typescript",
        "typescriptreact"
    ]
}

VSCode 中的 autoFixOnSave 没有效果

如果需要针对 .vue.ts.tsx 文件开启 ESLint 的 autoFix,则需要配置成:

{
    "eslint.autoFixOnSave": true,
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        {
            "language": "vue",
            "autoFix": true
        },
        {
            "language": "typescript",
            "autoFix": true
        },
        {
            "language": "typescriptreact",
            "autoFix": true
        }
    ]
}