规则文档 https://eslint.org/docs/latest/use/configure
Eslint
module.exports = {
'env': {
'browser': true,
'es2021': true
},
'extends': [
'eslint:recommended',
'plugin:vue/essential'
],
'parserOptions': {
'ecmaVersion': 12,
'sourceType': 'module'
},
'plugins': [
'vue'
],
'rules': {
// Needful
'indent': [2, 4],//缩进风格
'semi': [2, 'always'],//语句强制分号结尾
'no-undef-init': 2,//变量初始化时不能直接给它赋值为undefined
'no-use-before-define': 2,//未定义前不能使用
'no-unused-vars': [2, {'vars': 'all', 'args': 'after-used'}],//不能有声明后未被使用的变量或参数
'newline-after-var': 2,//变量声明后是否需要空一行
'no-redeclare': 2,//禁止重复声明变量
'no-var': 0,//禁用var,用let和const代替
'prefer-const': 0,//首选const
'eqeqeq': 0,//必须使用全等
'no-unreachable': 2,//不能有无法执行的代码
'yoda': [2, 'never'],//禁止尤达条件
'no-eq-null': 2,//禁止对null使用==或!=运算符
// Space
'semi-spacing': [0, {'before': false, 'after': true}],//分号前后空格
// 'space-return-throw-case': 2,//return throw case后面要不要加空格
'spaced-comment': 0,//注释风格不要有空格什么的
'comma-spacing': 0,//逗号前后的空格
'no-irregular-whitespace': 2,//不能有不规则的空格
'no-mixed-spaces-and-tabs': [2, false],//禁止混用tab和空格
'no-multi-spaces': 2,//不能用多余的空格
// Row
'no-multiple-empty-lines': [2, {'max': 2}],//空行最多不能超过2行
'padded-blocks': 2,//块语句内行首行尾是否要空行
'comma-style': [2, 'last'],//逗号风格,换行时在行首还是行尾
// Obj
'no-dupe-keys': 2,//在创建对象字面量时不允许键重复 {a:1,a:1}
'comma-dangle': [2, 'never'],//对象字面量项尾不能有逗号
'quote-props': [2, 'always'],//对象字面量中的属性名是否强制双引号
'no-new-wrappers': 0,//禁止使用new创建包装实例,new String new Boolean new Number
// undefined
'no-undefined': 0,//不能使用undefined
// Var
'no-const-assign': 2,//禁止修改const声明的变量
'no-undef': 1,//不能有未定义的变量
'no-shadow': 2,//外部作用域中的变量不能与它所包含的作用域中的变量或参数同名
'vars-on-top': 2,//var必须放在作用域顶部
'one-var': 0,//连续声明
'id-match': 0,//命名检测
'consistent-this': [2, 'that'],//this别名
'id-length': 0,//变量名长度
'max-len': [0, 80, 4],//字符串最大长度
// Fun
'no-func-assign': 2,//禁止重复的函数声明
'no-spaced-func': 2,//函数调用时 函数名与()之间不能有空格
'no-useless-call': 2,//禁止不必要的call和apply
'no-caller': 2,//禁止使用arguments.caller或arguments.callee
'no-dupe-args': 2,//函数参数不能重复
'callback-return': 1,//避免多次调用回调什么的
'wrap-iife': [2, 'inside'],//立即执行函数表达式的小括号风格
'max-nested-callbacks': [0, 2],//回调嵌套深度
'max-params': [0, 5],//函数最多只能有3个参数
'max-statements': [0, 10],//函数内最多有几个声明
// Arr
'no-sparse-arrays': 2,//禁止稀疏数组, [1,,2]
'array-bracket-spacing': [2, 'never'],//是否允许非空数组里面有多余的空格
// if
'valid-typeof': 2,//必须使用合法的typeof的值
'use-isnan': 2, //禁止比较时使用NaN,只能用isNaN()
'curly': [2, 'all'],//必须使用 if(){} 中的{}
'no-sequences': 0,//禁止使用逗号运算符
'max-depth': [0, 4],//嵌套块深度
// switch
'default-case': 2,//switch语句最后必须有default
'no-catch-shadow': 2,//禁止catch子句参数与外部作用域变量同名
'no-duplicate-case': 2,//switch中的case标签不能重复
// for
'complexity': [0, 11],//循环复杂度
'guard-for-in': 0,//for in循环要用if语句过滤
// 杂项
'no-console': 0,//禁止使用console
'no-debugger': 0,//禁止使用debugger
'no-eval': 1,//禁止使用eval
'no-void': 2,//禁用void操作符
'no-with': 2,//禁用with
'no-implicit-coercion': 0,//禁止隐式转换
'no-inline-comments': 0//禁止行内备注
}
};
Idea .editorconfig
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
tab_width = 4
insert_final_newline = false
trim_trailing_whitespace = true
# https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
# curly_bracket_next_line = false # 大括号不另起一行
# spaces_around_operators = true # 运算符两遍都有空格
# indent_brace_style = 1tbs # 条件语句格式是 1tbs
#
# [*.js] # 对所有的 js 文件生效
# quote_type = single # 字符串使用单引号
#
# [*.{html,less,css,json}] # 对所有 html, less, css, json 文件生效
# quote_type = double # 字符串使用双引号
#
# [package.json] # 对 package.json 生效
# indent_size = 2 # 使用2个空格缩进
.gitignore
.DS_Store
node_modules
/dist
# 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?