前端eslint常用的一些配置记录

469 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

什么是eslint

ESLint 是一个根据方案识别并报告 ECMAScript/JavaScript 代码问题的工具,其目的是使代码风格更加一致并避免错误。在很多地方它都与 JSLint 和 JSHint 类似

官方文档

zh-hans.eslint.org/docs/latest…

这里面介绍了eslint的各种配置说明,如果碰到不懂的或者不熟悉的,以官方为准。

eslint下载

npm i -D babel-eslint eslint eslint-config-airbnb-base eslint-plugin-import 这这里面共安装了4个插件。

  • babel-eslint:可以对所有有效的babel代码进行lint处理
  • eslint:eslint插件
  • eslint-config-airbnb-base:这是爱彼迎团队推出来的代码风格,比较严苛,团队入门新手较多时推荐;(其他类似的代码风格还有 eslint-config-standard: js标准风格,特别宽松,推荐使用高级用法,比较灵活,适合精英小团队; eslint:recommended: eslint官方推荐,较严格,使用最广的风格;)
  • eslint-plugin-import:这个插件意在提供对ES6+ import/export语法的支持,有助于防止你写错文件路径或者引用的变量名。

项目如果需要增加eslint代码检查规范,大致安装以上插件即可开始编写。

eslint规范配置

项目里新建.eslintrc 文件


module.exports = {
  root: true, // 当前项目使用这个配置文件, 不会往父级目录找.eslintrc.js文件
  env: { // 指定eslint启动环境(vuecli底层是node支持), browser: true也可以在浏览器设置
    node: true
  },
  extends: [ // 扩展配置
    'plugin:vue/essential', // vue里必须的规则
    '@vue/standard'// 使eslint继承@vue/cli脚手架里的 - standard标准
     'plugin:vue/vue3-recommended',
    'plugin:@typescript-eslint/recommended',
    'prettier',
    'plugin:prettier/recommended',
  ],
  parserOptions: { // 对新语法使用eslint
    parser: 'babel-eslint', // 使用babel-eslint 来解析新语法ES6
    parser: '@typescript-eslint/parser', //对 TypeScript 的解析
  },
  // 这里可以进行自定义规则配置
  // key:规则代号
  // value:具体的限定方式
  //   "off" or 0 - 关闭规则
  //   "warn" or 1 - 将规则视为一个警告(不会影响退出码),只警告,不会退出程序
  //   "error" or 2 - 将规则视为一个错误 (退出码为1),报错并退出程序
  rules: { // 自定义规则 - 其实上面集成后有很多内置的规则, 这里可以进行规则的一些修改
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // 上线环境用打印就报警告, 开发环境关闭此规则
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // debugger可以终止代码执行
    'no-multiple-empty-lines': 'off', // 不允许有连续多行空行(关闭规则)
    'vue/script-setup-uses-vars': 'error',
    '@typescript-eslint/ban-ts-ignore': 'off',
    '@typescript-eslint/explicit-function-return-type': 'off',
    '@typescript-eslint/no-explicit-any': 'off',
    '@typescript-eslint/no-var-requires': 'off',
    '@typescript-eslint/no-empty-function': 'off',
    'vue/custom-event-name-casing': 'off',
    'no-use-before-define': 'off',
  }
}

eslint与vscode的结合

一半对于eslint,建议vscode进行开发,可以很好的搭配。 vscode可以安装eslint插件,进行配置。 选择vs code左下角的“设置”, 打开 VSCode 配置文件,选择eslint,在setting.json文件中添加如下配置,可以让我们非常规范的书写代码。


{
    "eslint.run": "onType",
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    },
    "vetur.validation.template": false, // 把 vetur 扩展的 template 格式化去掉
    "editor.formatOnSave": false, // 去掉 vscode 自带的自动保存 ,vscode 默认也是 false的,如果要用 eslint 格式化,默认的格式化就不能开启
    "eslint.enable": true, // eslint 格式化的配置
    "eslint.autoFixOnSave": true, // eslint保存时候自动解决语法错误
    "eslint.options": { // eslint选项-格式化js和vue文件
        "extensions": [
            ".js",
            ".vue"
        ]
    },
    "eslint.validate": [
        "javascript",
        {
            "language": "vue",
            "autoFix": true,
        },
        "html",
        "vue"
    ],
}

总结

eslint可以很好的规范我们的代码格式,与之类似的还有stylelint用来格式化我们的css代码,一般建议搭配使用,这样代码整体的规范性进一步提高了。