详解vue-cli中的ESlint配置文件eslintrc.js,.gitignore

module.exports = {
    
    
  root: true,
  parser: 'vue-eslint-parser',
  parserOptions: {
    
    
    parser: 'babel-eslint',
    sourceType: 'module'
  },
  ignorePatterns: ['src/Common/vue/libs'],
  plugins: ['html', 'vue'], //vue  把vue打开会导致 console 报错  暂时注释  发布的时候加上
  globals: {
    
    
    axios: true,
    describe: true,
    it: true,
    ActiveXObject: true,
    PRODUCT_TYPE: true,
    MODULE_BUILD: true
  },
  extends: [
    'eslint:recommended',
    // 'plugin:vue/recommended',
    // 'plugin:vue/strongly-recommended',
    'plugin:@typescript-eslint/recommended'
  ],
  rules: {
    
    
    // Possible Errors
    'no-cond-assign': ['error'], //禁止条件表达式中出现赋值操作,while条件中使用括号可以避免错误
    'no-console': 0, //禁止使用console
    'no-constant-condition': ['error'], //禁止条件表达式中出现常量
    'no-control-regex': ['error'], //禁止正则表达式中出现控制字符
    'no-debugger': ['error'], //禁止使用debugger
    'no-dupe-args': ['error'], //禁止函数定义中出现重复参数
    'no-dupe-keys': ['error'], //禁止对象定义中出现重复的key
    'no-duplicate-case': ['error'], //禁止switch中出现重复的case条件
    'no-empty-character-class': ['error'], //禁止正则表达式中出现空的类
    'no-empty': ['error'], //禁止内容为空的块语句,增加注释可以避免错误
    'no-ex-assign': ['error'], //禁止catch语句中对异常参数重新赋值
    'no-extra-boolean-cast': ['error'], //禁止不必要的BOOL类型转换
    'no-extra-semi': ['error'], //禁止不必要的分号
    'no-func-assign': ['error'], //禁止对已定义的函数进行重新赋值
    'no-invalid-regexp': ['error'], //禁止RegExp函数中出现无效的正则字符串
    'no-negated-in-lhs': ['error'], //禁止在in表达式中对左操作数取反
    'no-obj-calls': ['error'], //禁止将Math 和 JSON这两个全局对象作为函数来调用
    'no-regex-spaces': ['error'], //禁止正则表达式中出现多个空格
    'no-sparse-arrays': ['error'], //禁止稀疏数组
    'no-unexpected-multiline': ['error'], //禁止错误的分行
    'no-unreachable': ['error'], //禁止不可能执行到的代码
    'no-unsafe-finally': ['error'], //禁止finally块中出现控制语句
    'use-isnan': ['error'], //使用isNaN函数进行NaN判断
    'valid-jsdoc': ['off'], //使用 JSDoc 注释风格
    'valid-typeof': ['error'], //禁止将typeof表达式的结果与无效的字符串进行比较

    // Best Practices
    'array-callback-return': ['error'], //Array方法中的回调函数必须要有return返回
    curly: ['error'], //if, while, for后面的{}不能省略
    'default-case': ['error'], //switch语句最后必须有default
    eqeqeq: ['error'], //必须使用全等
    //"no-alert": ["error"],                      //禁止使用alert confirm prompt
    'no-caller': ['error'], //禁止使用arguments.caller或arguments.callee
    'no-case-declarations': ['error'], //不允许在case内定义变量
    'no-div-regex': ['error'], //不能使用看起来像除法的正则表达式/=foo/
    'no-else-return': ['error'], //如果if语句里面有return,后面不能跟else语句
    'no-empty-function': ['error'], //禁止定义空函数(增加注释可避免报错)
    'no-eval': ['error'], //禁止使用eval
    'no-extend-native': ['error'], //禁止扩展native对象
    'no-extra-bind': ['error'], //禁止不必要的函数绑定
    'no-extra-label': ['error'], //禁止不必要的label
    'no-fallthrough': ['error'], //禁止switch穿透
    'no-floating-decimal': ['error'], //禁止省略浮点数中的0
    'no-implicit-globals': ['error'], //禁止省略全局变量的所属对象window
    'no-implied-eval': ['error'], //禁止使用隐式eval
    //"no-invalid-this": ["error"],               //禁止无效的this
    'no-iterator': ['error'], //禁止使用__iterator__ 属性
    'no-labels': ['error'], //禁止标签声明
    'no-lone-blocks': ['error'], //禁止不必要的嵌套块
    'no-loop-func': ['error'], //禁止在循环中使用函数(如果没有引用外部变量不形成闭包就可以)
    'no-multi-spaces': [
      'error',
      {
    
    
        //不能用多余的空格
        ignoreEOLComments: true
      }
    ],
    'no-multi-str': ['error'], //字符串不能用\换行
    'no-native-reassign': ['error'], //不能重写native对象
    'no-new-func': ['error'], //禁止使用new Function
    'no-new-wrappers': ['error'], //禁止使用new创建包装实例,new String new Boolean new Number
    'no-new': ['error'], //禁止在使用new构造一个实例后不赋值
    'no-octal-escape': ['error'], //禁止使用八进制转义序列,用Unicode转义序列
    'no-octal': ['error'], //禁止使用八进制数字
    'no-proto': ['error'], //禁止使用__proto__属性
    'no-redeclare': ['error'], //禁止重复声明变量
    'no-return-assign': ['error'], //return 语句中不能有赋值表达式
    'no-script-url': ['error'], //禁止使用javascript:void(0)
    'no-self-compare': ['error'], //不能比较自身
    'no-sequences': ['error'], //禁止使用逗号运算符
    'no-throw-literal': ['error'], //禁止抛出字面量错误 throw "error";
    'no-unused-labels': ['error'], //禁止无用的标签
    'no-useless-call': ['error'], //禁止不必要的call和apply
    'no-useless-concat': ['error'], //禁止不必要的字符串连接操作
    'no-useless-escape': ['error'], //禁止不必要的字符转义  张文凯注释
    'no-void': ['error'], //禁用void操作符
    'no-with': ['error'], //禁用with
    radix: ['error'], //parseInt必须指定第二个参数
    'wrap-iife': ['error', 'inside'], //立即执行函数表达式的小括号风格

    // Variables
    'no-delete-var': ['error'], //不允许删除已定义变量,“use strict”模式下会报错
    'no-label-var': ['error'], //禁止语句标签与变量共享一个名称
    'no-shadow-restricted-names': ['error'], //禁止声明、使用 与关键词或全局对象同名的变量、参数、或函数
    'no-shadow': ['off'], //禁止变量覆盖定义
    'no-undef-init': ['error'], //禁止初始化变量为undefined
    'no-undef': ['error'], //禁止使用未声明的变量
    //"no-undefined": ["error"],                  //禁止使用undefined作为变量名 todo
    'no-unused-vars': ['error'], //禁止定义了又不使用的变量
    'no-use-before-define': [
      'error',
      {
    
    
        //禁止在声明变量前使用变量
        functions: false //不会影响未声明使用的函数
      }
    ],

    // Stylistic Issues
    'array-bracket-spacing': ['error', 'never'], //数组里面有多余的空格
    'brace-style': ['error', '1tbs'], //大括号风格
    // "camelcase": ["error"],                                              //驼峰法命名
    'comma-dangle': ['error', 'never'], //对象不能尾随逗号
    'comma-spacing': ['error', {
    
     before: false, after: true }], //逗号前后的空格
    'comma-style': ['error', 'last'], //逗号风格,换行时在行首还是行尾
    'computed-property-spacing': ['error', 'never'], //获取对象属性,key前后空格
    'func-names': ['error', 'never'], //函数表达式必须有名字
    indent: ['error', 2, {
    
     SwitchCase: 1, ignoredNodes: ['TemplateLiteral'] }], //代码缩进
    'key-spacing': ['error', {
    
     beforeColon: false, afterColon: true }], //对象的键和冒号间的空格
    'keyword-spacing': ['error', {
    
     before: true, after: true }], //条件语句和括号间的空格
    // "linebreak-style": ["error", "windows"],                             //换行风格
    'new-cap': ['off', {
    
     properties: false }], //new类名大写开头
    'new-parens': ['error'], //new时必须加小括号
    // "newline-before-return": ["error"],                                  //return 前需要空一行, 2017/12/07讨论去除
    'no-array-constructor': ['error'], //使用[]构造
    'no-mixed-spaces-and-tabs': ['error'], //禁止混用tab和空格
    'no-multiple-empty-lines': ['error', {
    
     max: 2 }], //空行最多不能超过2行
    'no-new-object': ['error'], //禁止使用new Object()
    'no-spaced-func': ['error'], //函数调用时 函数名与()之间不能有空格
    'no-trailing-spaces': ['error', {
    
     skipBlankLines: true }], //一行结束后面不要有空格
    'no-unneeded-ternary': ['error'], //禁止不必要的三元表达式
    'no-whitespace-before-property': ['error'], //属性访问点号后没有空格
    // "object-property-newline": ["error"],                                   //对象属性换行
    'one-var-declaration-per-line': ['error', 'always'], //每一行一个var声明
    'one-var': ['error', 'never'], //多个var连续声明
    // "operator-linebreak": ["error", "before"],                              //换行时运算符在行尾/行首
    'padded-blocks': ['error', 'never'], //块语句内行首/行尾是否要空行
    'semi-spacing': ['error', {
    
     before: false, after: true }], //分号前后空格
    semi: ['error', 'always'], //语句强制分号结尾
    'space-before-blocks': ['error', 'always'], //条件判断语句块和{之间不要有空格
    'space-in-parens': ['error', 'never'], //小括号里面要不要有空格
    'space-infix-ops': ['error'], //二元运算符周围要不要有空格
    'space-unary-ops': ['error', {
    
     words: true, nonwords: false }], //一元运算符的前/后要不要加空格
    // "wrap-regex": ["error"],
    'vue/attributes-order': 0, //正则表达式用小括号包起来
    '@typescript-eslint/explicit-module-boundary-types': 'off',
    '@typescript-eslint/no-var-requires': 'off', // 不允许写法commonjs
    'vue/html-self-closing': [
      'error',
      {
    
    
        html: {
    
    
          void: 'never',
          normal: 'any',
          component: 'any'
        },
        svg: 'always',
        math: 'always'
      }
    ],
    'vue/max-attributes-per-line': [
      'error',
      {
    
    
        singleline: 3,
        multiline: {
    
    
          max: 3,
          allowFirstLine: true
        }
      }
    ],
    'vue/max-attributes-per-line': [
      2,
      {
    
    
        singleline: 10,
        multiline: {
    
    
          max: 1,
          allowFirstLine: false
        }
      }
    ],
    'vue/name-property-casing': ['error', 'PascalCase'],
    'vue/singleline-html-element-content-newline': 0, // 在单行元素的内容前后需要换行符
    'vue/multiline-html-element-content-newline': 0 // 在多行元素的内容之前和之后需要换行符
  },
  env: {
    
    
    browser: true,
    node: true,
    commonjs: true,
    es6: true,
    jquery: true
  }
};

module.exports = {
    
    
  root: true,
  parserOptions: {
    
    
    parser: "babel-eslint"
  },
  ignorePatterns: ["src/Common/vue/libs"],
  plugins: ["html", "vue"], //vue  把vue打开会导致 console 报错  暂时注释  发布的时候加上
  "globals": {
    
    
    "axios": true,
    "describe": true,
    "it": true,
    "ActiveXObject": true,
    "PRODUCT_TYPE": true,
    "MODULE_BUILD": true
  },
  extends: [
    "eslint:recommended",
    "plugin:vue/recommended",
    "plugin:vue/strongly-recommended"
  ],
  rules: {
    
    
    // Possible Errors
    "no-cond-assign": ["error"],       //禁止条件表达式中出现赋值操作,while条件中使用括号可以避免错误
    "no-console": 0, //禁止使用console
    "no-constant-condition": ["error"],         //禁止条件表达式中出现常量
    "no-control-regex": ["error"],              //禁止正则表达式中出现控制字符
    "no-debugger": ["error"],                   //禁止使用debugger
    "no-dupe-args": ["error"],                  //禁止函数定义中出现重复参数
    "no-dupe-keys": ["error"],                  //禁止对象定义中出现重复的key
    "no-duplicate-case": ["error"],             //禁止switch中出现重复的case条件
    "no-empty-character-class": ["error"],      //禁止正则表达式中出现空的类
    "no-empty": ["error"],                      //禁止内容为空的块语句,增加注释可以避免错误
    "no-ex-assign": ["error"],                  //禁止catch语句中对异常参数重新赋值
    "no-extra-boolean-cast": ["error"],         //禁止不必要的BOOL类型转换
    "no-extra-semi": ["error"],                 //禁止不必要的分号
    "no-func-assign": ["error"],                //禁止对已定义的函数进行重新赋值
    "no-invalid-regexp": ["error"],             //禁止RegExp函数中出现无效的正则字符串
    "no-negated-in-lhs": ["error"],             //禁止在in表达式中对左操作数取反
    "no-obj-calls": ["error"],                  //禁止将Math 和 JSON这两个全局对象作为函数来调用
    "no-regex-spaces": ["error"],               //禁止正则表达式中出现多个空格
    "no-sparse-arrays": ["error"],              //禁止稀疏数组
    "no-unexpected-multiline": ["error"],       //禁止错误的分行
    "no-unreachable": ["error"],                //禁止不可能执行到的代码
    "no-unsafe-finally": ["error"],             //禁止finally块中出现控制语句
    "use-isnan": ["error"],                     //使用isNaN函数进行NaN判断
    "valid-jsdoc": ["off"],                   //使用 JSDoc 注释风格
    "valid-typeof": ["error"],                  //禁止将typeof表达式的结果与无效的字符串进行比较

    // Best Practices
    "array-callback-return": ["error"],         //Array方法中的回调函数必须要有return返回
    curly: ["error"], //if, while, for后面的{}不能省略
    "default-case": ["error"],                  //switch语句最后必须有default
    eqeqeq: ["error"], //必须使用全等
    //"no-alert": ["error"],                      //禁止使用alert confirm prompt
    "no-caller": ["error"],                     //禁止使用arguments.caller或arguments.callee
    "no-case-declarations": ["error"],          //不允许在case内定义变量
    "no-div-regex": ["error"],                  //不能使用看起来像除法的正则表达式/=foo/
    "no-else-return": ["error"],                //如果if语句里面有return,后面不能跟else语句
    "no-empty-function": ["error"],             //禁止定义空函数(增加注释可避免报错)
    "no-eval": ["error"],                       //禁止使用eval
    "no-extend-native": ["error"],              //禁止扩展native对象
    "no-extra-bind": ["error"],                 //禁止不必要的函数绑定
    "no-extra-label": ["error"],                //禁止不必要的label
    "no-fallthrough": ["error"],                //禁止switch穿透
    "no-floating-decimal": ["error"],           //禁止省略浮点数中的0
    "no-implicit-globals": ["error"],           //禁止省略全局变量的所属对象window
    "no-implied-eval": ["error"],               //禁止使用隐式eval
    //"no-invalid-this": ["error"],               //禁止无效的this
    "no-iterator": ["error"],                   //禁止使用__iterator__ 属性
    "no-labels": ["error"],                     //禁止标签声明
    "no-lone-blocks": ["error"],                //禁止不必要的嵌套块
    "no-loop-func": ["error"],                  //禁止在循环中使用函数(如果没有引用外部变量不形成闭包就可以)
    "no-multi-spaces": [
      "error",
      {
    
    
        //不能用多余的空格
        ignoreEOLComments: true
      }
    ],
    "no-multi-str": ["error"],                  //字符串不能用\换行
    "no-native-reassign": ["error"],            //不能重写native对象
    "no-new-func": ["error"],                   //禁止使用new Function
    "no-new-wrappers": ["error"],               //禁止使用new创建包装实例,new String new Boolean new Number
    "no-new": ["error"],                        //禁止在使用new构造一个实例后不赋值
    "no-octal-escape": ["error"],               //禁止使用八进制转义序列,用Unicode转义序列
    "no-octal": ["error"],                      //禁止使用八进制数字
    "no-proto": ["error"],                      //禁止使用__proto__属性
    "no-redeclare": ["error"],                  //禁止重复声明变量
    "no-return-assign": ["error"],              //return 语句中不能有赋值表达式
    "no-script-url": ["error"],                 //禁止使用javascript:void(0)
    "no-self-compare": ["error"],               //不能比较自身
    "no-sequences": ["error"],                  //禁止使用逗号运算符
    "no-throw-literal": ["error"],              //禁止抛出字面量错误 throw "error";
    "no-unused-labels": ["error"],              //禁止无用的标签
    "no-useless-call": ["error"],               //禁止不必要的call和apply
    "no-useless-concat": ["error"],             //禁止不必要的字符串连接操作
    "no-useless-escape": ["error"],             //禁止不必要的字符转义  张文凯注释
    "no-void": ["error"],                       //禁用void操作符
    "no-with": ["error"],                       //禁用with
    radix: ["error"], //parseInt必须指定第二个参数
    "wrap-iife": ["error", "inside"],           //立即执行函数表达式的小括号风格

    // Variables
    "no-delete-var": ["error"],                 //不允许删除已定义变量,“use strict”模式下会报错
    "no-label-var": ["error"],                  //禁止语句标签与变量共享一个名称
    "no-shadow-restricted-names": ["error"],    //禁止声明、使用 与关键词或全局对象同名的变量、参数、或函数
    "no-shadow": ["off"],                     //禁止变量覆盖定义
    "no-undef-init": ["error"],                 //禁止初始化变量为undefined
    "no-undef": ["error"],                      //禁止使用未声明的变量
    //"no-undefined": ["error"],                  //禁止使用undefined作为变量名 todo
    "no-unused-vars": ["error"],                //禁止定义了又不使用的变量
    "no-use-before-define": [
      "error",
      {
    
    
        //禁止在声明变量前使用变量
        functions: false //不会影响未声明使用的函数
      }
    ],

    // Stylistic Issues
    "array-bracket-spacing": ["error", "never"],                            //数组里面有多余的空格
    "brace-style": ["error", "1tbs"],                                       //大括号风格
    // "camelcase": ["error"],                                              //驼峰法命名
    "comma-dangle": ["error", "never"],                                     //对象不能尾随逗号
    "comma-spacing": ["error", {
    
     before: false, after: true }], //逗号前后的空格
    "comma-style": ["error", "last"],                                       //逗号风格,换行时在行首还是行尾
    "computed-property-spacing": ["error", "never"],                        //获取对象属性,key前后空格
    "func-names": ["error", "never"],                                       //函数表达式必须有名字
    indent: ["error", 2, {
    
     SwitchCase: 1, ignoredNodes: ["TemplateLiteral"] }], //代码缩进
    "key-spacing": ["error", {
    
     beforeColon: false, afterColon: true }], //对象的键和冒号间的空格
    "keyword-spacing": ["error", {
    
     before: true, after: true }], //条件语句和括号间的空格
    // "linebreak-style": ["error", "windows"],                             //换行风格
    "new-cap": ["error", {
    
     properties: false }], //new类名大写开头
    "new-parens": ["error"],                                                //new时必须加小括号
    // "newline-before-return": ["error"],                                  //return 前需要空一行, 2017/12/07讨论去除
    "no-array-constructor": ["error"],                                      //使用[]构造
    "no-mixed-spaces-and-tabs": ["error"],                                  //禁止混用tab和空格
    "no-multiple-empty-lines": ["error", {
    
     max: 2 }], //空行最多不能超过2行
    "no-new-object": ["error"],                                             //禁止使用new Object()
    "no-spaced-func": ["error"],                                            //函数调用时 函数名与()之间不能有空格
    "no-trailing-spaces": ["error", {
    
     skipBlankLines: true }], //一行结束后面不要有空格
    "no-unneeded-ternary": ["error"],                                       //禁止不必要的三元表达式
    "no-whitespace-before-property": ["error"],                             //属性访问点号后没有空格
    // "object-property-newline": ["error"],                                   //对象属性换行
    "one-var-declaration-per-line": ["error", "always"],                    //每一行一个var声明
    "one-var": ["error", "never"],                                          //多个var连续声明
    // "operator-linebreak": ["error", "before"],                              //换行时运算符在行尾/行首
    "padded-blocks": ["error", "never"],                                    //块语句内行首/行尾是否要空行
    "semi-spacing": ["error", {
    
     before: false, after: true }], //分号前后空格
    semi: ["error", "always"], //语句强制分号结尾
    "space-before-blocks": ["error", "always"],                             //条件判断语句块和{之间不要有空格
    "space-in-parens": ["error", "never"],                                  //小括号里面要不要有空格
    "space-infix-ops": ["error"],                                           //二元运算符周围要不要有空格
    "space-unary-ops": ["error", {
    
     words: true, nonwords: false }], //一元运算符的前/后要不要加空格
    // "wrap-regex": ["error"],
    "vue/attributes-order": 0, //正则表达式用小括号包起来
    "vue/html-self-closing": [
      "error",
      {
    
    
        html: {
    
    
          void: "never",
          normal: "any",
          component: "any"
        },
        svg: "always",
        math: "always"
      }
    ],
    "vue/max-attributes-per-line": [
      "error",
      {
    
    
        singleline: 3,
        multiline: {
    
    
          max: 3,
          allowFirstLine: true
        }
      }
    ],
    "vue/max-attributes-per-line": [
      2,
      {
    
    
        singleline: 10,
        multiline: {
    
    
          max: 1,
          allowFirstLine: false
        }
      }
    ],
    "vue/name-property-casing": ["error", "PascalCase"],
    "vue/singleline-html-element-content-newline": 0, // 在单行元素的内容前后需要换行符
    "vue/multiline-html-element-content-newline": 0 // 在多行元素的内容之前和之后需要换行符
  },
  env: {
    
    
    browser: true,
    node: true,
    commonjs: true,
    es6: true,
    jquery: true
  }
};

.gitignore

.DS_Store
node_modules
/dist
/build
/output.js
/HCCMobile

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

.prettierrc

{
    
    
  "printWidth": 80,
  "singleQuote": true,
  "trailingComma": "none",
  "semi": true
}

postcss.config.js

module.exports = {
    
    
  plugins: {
    
    
    'postcss-px2rem': {
    
    
      remUnit: 37.5
    }
  }
};

猜你喜欢

转载自blog.csdn.net/weixin_43131046/article/details/126538526