前端杂货铺

vscode中,vue-cli的ESLint配置问题

2020-06-08  本文已影响0人  吴wuwu

解决缩进报错问题常用设置:

1.文件->首选项->设置->扩展->eslint->在settings.json中编辑:

"eslint.codeAction.disableRuleComment": {

    // vscode默认启用了根据文件类型自动设置tabsize的选项

    "editor.detectIndentation": false,

    // 重新设定tabsize

    "editor.tabSize": 2,

    // #每次保存的时候自动格式化

    "editor.formatOnSave": true,

    // #每次保存的时候将代码按eslint格式进行修复

    "eslint.autoFixOnSave": true,

    // 添加 vue 支持

    "eslint.validate": [

      "javascript",

      "javascriptreact",

      {

        "language": "vue",

        "autoFix": true

      }

    ],

    //  #让prettier使用eslint的代码格式进行校验

    "prettier.eslintIntegration": true,

    //  #去掉代码结尾的分号

    "prettier.semi": false,

    //  #使用带引号替代双引号

    "prettier.singleQuote": true,

    //  #让函数(名)和后面的括号之间加个空格

    "javascript.format.insertSpaceBeforeFunctionParenthesis": true,

    // #这个按用户自身习惯选择

    "vetur.format.defaultFormatter.html": "js-beautify-html",

    // #让vue中的js按编辑器自带的ts格式进行格式化

    "vetur.format.defaultFormatter.js": "vscode-typescript",

    "vetur.format.defaultFormatterOptions": {

      "js-beautify-html": {

        "wrap_attributes": "force-aligned"

        // #vue组件中html代码格式化样式

      }

    },

    // 格式化stylus, 需安装Manta's Stylus Supremacy插件

    "stylusSupremacy.insertColons": false, // 是否插入冒号

    "stylusSupremacy.insertSemicolons": false, // 是否插入分好

    "stylusSupremacy.insertBraces": false, // 是否插入大括号

    "stylusSupremacy.insertNewLineAroundImports": false, // import之后是否换行

    "stylusSupremacy.insertNewLineAroundBlocks": false,

    "editor.suggestSelection": "first",

    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue" // 两个选择器中是否换行

  },

2.配置 .eslintrc.js 规则:

module.exports = {

    root: true,

    env: {

        node: true

    },

    extends: [

        'plugin:vue/essential',

        '@vue/standard'

    ],

    parserOptions: {

        parser: 'babel-eslint'

    },

    rules: {

        'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

        'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

        // allow async-await

        'generator-star-spacing': 'off',

        // allow debugger during development

        'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',

        /*

   0 或’off’:  关闭规则。

   1 或’warn’: 打开规则,并且作为一个警告,字体颜色为黄色(并不会导致检查不通过)。

   2 或’error’:打开规则,并且作为一个错误 ,色体颜色为红色(退出码为1,检查不通过)。

      */

        // 以下为该项目自定义部分

        'indent': [2, 4], //缩进风格 - 开启缩进4格

        'no-spaced-func': 2, //函数调用时 函数名与()之间不能有空格 - 开启

        'no-const-assign': 2, //禁止修改const声明的变量 - 开启

        'space-before-function-paren': [0, 'always'], //函数定义时括号前面要有空格 - 关闭

        'eol-last': 0, //文件以单一的换行符结束 - 关闭

        'camelcase': 0, //强制驼峰法命名 - 关闭

        'no-undef': 0, //不能有未定义的变量 - 关闭

        'no-alert': 0, //禁止使用alert confirm prompt - 关闭

        'arrow-parens': 0, //箭头函数用小括号括起来 - 关闭

    }

}

3.配置.editorconfig规则:

[*.{js,jsx,ts,tsx,vue}]

indent_style = space

indent_size = 2

trim_trailing_whitespace = true

insert_final_newline = true

root = true // 让这个文件生效

[*] // 对所有文件都生效

charset = utf-8 // 编码

indent_style = space // 缩进'tabs键',如果习惯用空格可以设为'space'

indent_size = 2 // 缩进的尺寸

end_of_line = lf // 换行符格式(开发系统差异)

insert_final_newline = true // 是否在文件的最后插入一个空行

trim_trailing_whitespace = true // 是否删除行尾的空格

配置完成后解决问题:

上一篇下一篇

猜你喜欢

热点阅读