美文网首页ESlint
eslint篇-vscode + eslint + vue +

eslint篇-vscode + eslint + vue +

作者: 前端精 | 来源:发表于2018-08-29 10:57 被阅读12次

    如何在 vscode 里用 eslint 规范你的 code?

    前面说的话:

    用eslint的目的是为了在团队合作中,用来代码风格的统一,
    在团队中如果用了eslint,那么你就要把编码效率提高起来。

    开始

    • 安装插件ESLint 、Vetur、Prettier


      ESLint
      Vetur
      Prettier
    • 用vue-cli搭建项目,选择用 eslint yes

    • 生成一个vue spa项目之后,编辑器 文件->首选项->设置->用户设置 [也可以在工作区/文件夹设置]
      这些配置都是为了在保存文件的时候自动修复,提升编码效率
      如下:

    {
      "editor.formatOnSave": true,
      "eslint.autoFixOnSave": true,
      "eslint.validate": [
        "javascript",
        "javascriptreact",
        {
          "language": "typescript",
          "autoFix": true
        },
        {
          "language": "html",
          "autoFix": true
        },
        {
          "language": "vue",
          "autoFix": true
        }
      ],
      // 忽略需要eslint的文件夹
      "eslint.options": {
        "ignorePattern": ["node_modules", "build", "dist", "config", "static"]
      },
      // 代码缩进修改成2个空格
      "editor.tabSize": 2,
      // 不显示匿名函数前面的方法空格
      "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
      "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
      // 格式化单引号
      "prettier.singleQuote": true,
      "vetur.validation.template": false,
      // 可以让html按照属性格式化换行
      "vetur.format.defaultFormatter.html": "js-beautify-html",
      // vscode格式化Vue出现的问题,把"vetur.format.defaultFormatter.js": "prettier",改为 "vetur.format.defaultFormatter.js": "vscode-typescript"
      "vetur.format.defaultFormatter.js": "vscode-typescript",
      "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
          // vue组件中html代码格式化样式
          "wrap_attributes": "force-aligned"
        }
      },
      /* 编辑器设置相关 begin*/
      // 开启换行
      "editor.wordWrap": "on",
      "workbench.colorTheme": "Monokai",
      "editor.quickSuggestions": {
        "other": true,
        "comments": true,
        "strings": true
      },
      "files.trimTrailingWhitespace": false,
      /* 编辑器设置相关 end*/
    }
    

    即可!

    • 一般我们都用eslint默认的配置来编写,如果想要有自己的规则,可以在
      .eslintrc.js文件中编辑
    // https://eslint.org/docs/user-guide/configuring
    
    module.exports = {
      root: true,
      parserOptions: {
        parser: 'babel-eslint'
      },
      env: {
        browser: true
      },
      extends: [
        // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
        // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
        'plugin:vue/essential',
        // https://github.com/standard/standard/blob/master/docs/RULES-en.md
        'standard'
      ],
      // required to lint *.vue files
      plugins: ['vue'],
      // add your custom rules here
      rules: {
        // allow async-await
        'generator-star-spacing': 'off',
        // allow debugger during development
        'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    
        /*  自己添加的规则 begin */
        'no-multiple-empty-lines': ['error', { max: 3 }],
        // 方法名后面不加空格
        'space-before-function-paren': ['error', 'never'],
        // 语句强制分号结尾
        semi: ['error', 'always'],
        quotes: ['error', 'single'],
        // iview 部分标签会显示错误
        'vue/no-parsing-error': ['error', { 'x-invalid-end-tag': false }]
        /*  自己添加的规则 end */
      }
    };
    

    以上的配置,就可以开始开发vue spa项目了,ctrl+s保存项目的时候就会自动格式化,自动修复

    以下是多余的:

    • 针对单个 js 文件禁用 ESLint 语法校验
    1. 在代码顶部添加一行注释
    /* eslint-disable */
    

    ESLint 在校验的时候就会跳过后面的代码

    1. 还可以在注释后加入详细规则,这样就能避开指定的校验规则了
    /* eslint-disable no-new */
    

    例如我们用vue-cli生成的项目


    相关文章

      网友评论

        本文标题:eslint篇-vscode + eslint + vue +

        本文链接:https://www.haomeiwen.com/subject/vgytiftx.html