zoukankan      html  css  js  c++  java
  • eslint prettier vetur eslint

     VScode (版本 1.47.3)安装 eslint prettier vetur 插件 .vue 文件使用 vetur 进行格式化

    在文件 .prettierrc 里写 属于你的 pettier 规则

    {
       "printWidth": 120,
       "tabWidth": 2,
       "singleQuote": true,
       "trailingComma": "none",
       "semi": false,
       "wrap_line_length": 120,
       "wrap_attributes": "auto",
       "proseWrap": "always",
       "arrowParens": "avoid",
       "bracketSpacing": false,
       "jsxBracketSameLine": true,
       "useTabs": false,
       "overrides": [{
           "files": ".prettierrc",
           "options": {
               "parser": "json"
           }
       }]
    }

    Vscode setting.json 设置

    {
      // 将设置放入此文件中以覆盖默认设置
      "files.autoSave": "off",
      // 控制字体系列。
      "editor.fontFamily": "Consolas, 'Courier New', monospace,'宋体'",
      "terminal.integrated.shell.windows": "C:\Program Files\Git\bin\bash.exe",
      // 以像素为单位控制字号。
      "editor.fontSize": 16,
      // 控制选取范围是否有圆角
      "editor.roundedSelection": false,
      // 建议小组件的字号
      "editor.suggestFontSize": 16,
      // 在“打开的编辑器”窗格中显示的编辑器数量。将其设置为 0 可隐藏窗格。
      "explorer.openEditors.visible": 0,
      // 是否已启用自动刷新
      "git.autorefresh": true,
      // 以像素为单位控制终端的字号,这是 editor.fontSize 的默认值。
      "terminal.integrated.fontSize": 14,
      // 控制终端游标是否闪烁。
      "terminal.integrated.cursorBlinking": true,
      // 一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。
      // Tab Size
      "editor.tabSize": 2,
      // By default, common template. Do not modify it!!!!!
      "editor.formatOnType": true,
      "window.zoomLevel": 0,
      "editor.detectIndentation": false,
      "css.fileExtensions": ["css", "scss"],
      "files.associations": {
        "*.string": "html",
        "*.vue": "vue",
        "*.wxss": "css",
        "*.wxml": "wxml",
        "*.wxs": "javascript",
        "*.cjson": "jsonc",
        "*.js": "javascript"
      },
      // 为指定的语法定义配置文件或使用带有特定规则的配置文件。
      "emmet.syntaxProfiles": {
        "vue-html": "html",
        "vue": "html"
      },
      "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true
      },
      //保存时eslint自动修复错误
      "editor.formatOnSave": true,
      // Enable per-language
      //配置 ESLint 检查的文件类型
      "editor.quickSuggestions": {
        "strings": true
      },
      // 添加 vue 支持
      // 这里是针对vue文件的格式化设置,vue的规则在这里生效
      "vetur.format.options.tabSize": 2,
      "vetur.format.options.useTabs": false,
      "vetur.format.defaultFormatter.html": "js-beautify-html",
      "vetur.format.defaultFormatter.css": "prettier",
      "vetur.format.defaultFormatter.scss": "prettier",
      "vetur.format.defaultFormatter.postcss": "prettier",
      "vetur.format.defaultFormatter.less": "prettier",
      "vetur.format.defaultFormatter.js": "vscode-typescript",
      "vetur.format.defaultFormatter.sass": "sass-formatter",
      "vetur.format.defaultFormatter.ts": "prettier",
      "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
          "wrap_attributes": "aligned-multiple", // 超过150折行
          "wrap-line-length": 150
        },
        // #vue组件中html代码格式化样式
        "prettier": {
          "printWidth": 120,
          "tabWidth": 2,
          "singleQuote": false,
          "trailingComma": "none",
          "semi": false,
          "wrap_line_length": 120,
          "wrap_attributes": "aligned-multiple", // 超过150折行
          "proseWrap": "always",
          "arrowParens": "avoid",
          "bracketSpacing": true,
          "jsxBracketSameLine": true,
          "useTabs": false,
          "overrides": [
            {
              "files": ".prettierrc",
              "options": {
                "parser": "json"
              }
            }
          ]
        }
      },
      // Enable per-language
      "[json]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
      },
      "vetur.validation.template": false,
      "html.format.enable": false,
      "json.format.enable": false,
      "javascript.format.enable": false,
      "typescript.format.enable": false,
      "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
      "[html]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
      },
      "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
      },
      "[jsonc]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
      },
      "[vue]": {
        "editor.defaultFormatter": "octref.vetur"
      },
      "emmet.includeLanguages": {
        "wxml": "html"
      },
      "[typescriptreact]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
      },
      // 开启eslint自动修复js/ts功能
      "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
      },
      "minapp-vscode.disableAutoConfig": true,
      "javascript.implicitProjectConfig.experimentalDecorators": true,
      "editor.maxTokenizationLineLength": 200000,
      "workbench.colorTheme": "Dracula Soft",
      "workbench.iconTheme": "vscode-icons",
      "workbench.editorAssociations": []
    }
    View Code

    .eslintrc.js

    module.exports = {
      root: true,
      env: {
        node: true
      },
      extends: ['plugin:vue/essential', '@vue/standard'],
      parserOptions: {
        parser: 'babel-eslint'
      },
    
      rules: {
        'vue/max-attributes-per-line': [
          2,
          {
            singleline: 10,
            multiline: {
              max: 1,
              allowFirstLine: false
            }
          }
        ],
        'vue/singleline-html-element-content-newline': 'off',
        'vue/multiline-html-element-content-newline': 'off',
        'vue/name-property-casing': ['error', 'PascalCase'],
        'vue/no-v-html': 'off',
        'accessor-pairs': 2,
        'arrow-spacing': [
          2,
          {
            before: true,
            after: true
          }
        ],
        'block-spacing': [2, 'always'],
        'brace-style': [
          2,
          '1tbs',
          {
            allowSingleLine: true
          }
        ],
        camelcase: [
          0,
          {
            properties: 'always'
          }
        ],
        'comma-dangle': [2, 'never'],
        'comma-spacing': [
          2,
          {
            before: false,
            after: true
          }
        ],
        'comma-style': [2, 'last'],
        'constructor-super': 2,
        curly: [2, 'multi-line'],
        'dot-location': [2, 'property'],
        'eol-last': 2,
        eqeqeq: ['error', 'always', { null: 'ignore' }],
        'generator-star-spacing': [
          2,
          {
            before: true,
            after: true
          }
        ],
        'handle-callback-err': [2, '^(err|error)$'],
        indent: [
          2,
          2,
          {
            SwitchCase: 1
          }
        ],
        'jsx-quotes': [2, 'prefer-single'],
        'key-spacing': [
          2,
          {
            beforeColon: false,
            afterColon: true
          }
        ],
        'keyword-spacing': [
          2,
          {
            before: true,
            after: true
          }
        ],
        'new-cap': [
          2,
          {
            newIsCap: true,
            capIsNew: false
          }
        ],
        'new-parens': 2,
        'no-array-constructor': 2,
        'no-caller': 2,
        'no-console': 'off',
        'no-class-assign': 2,
        'no-cond-assign': 2,
        'no-const-assign': 2,
        'no-control-regex': 0,
        'no-delete-var': 2,
        'no-dupe-args': 2,
        'no-dupe-class-members': 2,
        'no-dupe-keys': 2,
        'no-duplicate-case': 2,
        'no-empty-character-class': 2,
        'no-empty-pattern': 2,
        'no-eval': 2,
        'no-ex-assign': 2,
        'no-extend-native': 2,
        'no-extra-bind': 2,
        'no-extra-boolean-cast': 2,
        'no-extra-parens': [2, 'functions'],
        'no-fallthrough': 2,
        'no-floating-decimal': 2,
        'no-func-assign': 2,
        'no-implied-eval': 2,
        'no-inner-declarations': [2, 'functions'],
        'no-invalid-regexp': 2,
        'no-irregular-whitespace': 2,
        'no-iterator': 2,
        'no-label-var': 2,
        'no-labels': [
          2,
          {
            allowLoop: false,
            allowSwitch: false
          }
        ],
        'no-lone-blocks': 2,
        'no-mixed-spaces-and-tabs': 2,
        'no-multi-spaces': 2,
        'no-multi-str': 2,
        'no-multiple-empty-lines': [
          2,
          {
            max: 1
          }
        ],
        'no-native-reassign': 2,
        'no-negated-in-lhs': 2,
        'no-new-object': 2,
        'no-new-require': 2,
        'no-new-symbol': 2,
        'no-new-wrappers': 2,
        'no-obj-calls': 2,
        'no-octal': 2,
        'no-octal-escape': 2,
        'no-path-concat': 2,
        'no-proto': 2,
        'no-redeclare': 2,
        'no-regex-spaces': 2,
        'no-return-assign': [2, 'except-parens'],
        'no-self-assign': 2,
        'no-self-compare': 2,
        'no-sequences': 2,
        'no-shadow-restricted-names': 2,
        'no-spaced-func': 2,
        'no-sparse-arrays': 2,
        'no-this-before-super': 2,
        'no-throw-literal': 2,
        'no-trailing-spaces': 2,
        'no-undef': 2,
        'no-undef-init': 2,
        'no-unexpected-multiline': 2,
        'no-unmodified-loop-condition': 2,
        'no-unneeded-ternary': [
          2,
          {
            defaultAssignment: false
          }
        ],
        'no-unreachable': 2,
        'no-unsafe-finally': 2,
        'no-unused-vars': [
          2,
          {
            vars: 'all',
            args: 'none'
          }
        ],
        'no-useless-call': 2,
        'no-useless-computed-key': 2,
        'no-useless-constructor': 2,
        'no-useless-escape': 0,
        'no-whitespace-before-property': 2,
        'no-with': 2,
        'one-var': [
          2,
          {
            initialized: 'never'
          }
        ],
        'operator-linebreak': [
          2,
          'after',
          {
            overrides: {
              '?': 'before',
              ':': 'before'
            }
          }
        ],
        'padded-blocks': [2, 'never'],
        quotes: [
          2,
          'single',
          {
            avoidEscape: true,
            allowTemplateLiterals: true
          }
        ],
        semi: [2, 'never'],
        'semi-spacing': [
          2,
          {
            before: false,
            after: true
          }
        ],
        'space-before-blocks': [2, 'always'],
        'space-before-function-paren': [2, 'never'],
        'space-in-parens': [2, 'never'],
        'space-infix-ops': 2,
        'space-unary-ops': [
          2,
          {
            words: true,
            nonwords: false
          }
        ],
        'spaced-comment': [
          2,
          'always',
          {
            markers: ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
          }
        ],
        'template-curly-spacing': [2, 'never'],
        'use-isnan': 2,
        'valid-typeof': 2,
        'wrap-iife': [2, 'any'],
        'yield-star-spacing': [2, 'both'],
        yoda: [2, 'never'],
        'prefer-const': 2,
        'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
        'object-curly-spacing': [
          2,
          'always',
          {
            objectsInObjects: false
          }
        ],
        'array-bracket-spacing': [2, 'never']
      }
    }
    View Code

    .eslintignore

    build/*.js
    src/assets
    public
    dist
  • 相关阅读:
    ActiveReport9 在MVC4项目中出错
    EntityFramework5.0 DataBase-First 在三层架构中的使用,分离实体类到Model层。
    SqlServer存在并删除 表,函数,view等
    Visual Studio常用技巧与插件
    让 WPF 应用程序单例化
    C# 常用加密方法一 AES 与 DES
    Windows 的公共文件夹
    Hibernate中Criteria的完整用法
    maven依赖关系中Scope的作用
    Eclipse取消设置项目默认空间
  • 原文地址:https://www.cnblogs.com/xiaoliziaaa/p/13602129.html
Copyright © 2011-2022 走看看