安装eslintcnpminstalleslint--save-devinitializenpmeslint--init//选择配置√您想如何使用ESLint?问题√你的项目使用什么类型的模块?esm√你的项目用的是什么框架?·vue√你的项目用的是TypeScript吗?·否/是√你的代码在哪里运行?·浏览器√你希望你的配置文件是什么格式?·JavaScript您选择的配置需要以下依赖项:eslint-plugin-vue@latest@typescript-eslint/eslint-plugin@latest@typescript-eslint/parser@latest√您想现在使用npm安装它们吗?No/Yesrules配置解决了以上问题后,可以按照官方文档添加规则配置,主要是根据公司或者个人开发习惯自定义规则。//eslint-disable-next-lineno-undefmodule.exports={'env':{'browser':true,'es2021':true,'vue/setup-compiler-macros':true},'parser':'vue-eslint-parser','extends':['eslint:recommended','plugin:vue/vue3-essential','plugin:@typescript-eslint/recommended'],'parserOptions':{'ecmaVersion':“最新”,“解析器”:'@typescript-eslint/parser','sourceType':'module'},'plugins':['vue','@typescript-eslint'],//规则配置文档http://eslint.cn/docs/rules/'rules':{//--下面是PossibleErrors相关的逻辑错误JS代码'no-extra-parens':'error',//禁止不必要的括号//"no-console":"error"//不允许打印console.log'no-template-curly-in-string':'error',//禁止在正则字符串中使用模板字符串语法${xxx}//--以下为BestPractices最佳实践'default-case':'error',//强制开关有一个默认分支'dot-location':['error','property'],//要求对象的点在与属性相同的行'eqeqeq':'error',//require===and!=='no-else-return':'error',//禁止return在else之前,return和else不能同时存在time'no-empty-function':'error',//禁止空函数,如果你打算这样做可以在函数内部添加注释'no-multi-spaces':'error',//禁止多个空格,比如===前后可以有一个空格,但是不能有多个空格'no-multi-str':'error',//禁止多行字符串,可以使用模板字符串包裹'no-self-compare':'error',//禁止自比较'no-unmodified-loop-condition':'error',//禁止不可变循环条件,比如while条件,防止死循环'no-useless-concat':'error',//禁止没有必要的字符串拼接,比如'a'+'b'应该写成'ab''require-await':'error',//禁止不等待使用t'sasyncexpression//--下面是StylisticIssues的主观代码风格'array-element-newline':['error','consistent'],//数组元素是否应该一致换行'block-spacing':'error',//强制函数/循环和其他块级作用域在大括号前后都有一个空格(对象除外)'brace-style':['error','1tbs',{'allowSingleLine':true}],//if/elseif/else左花括号应该和if..一起,右花括号应该被包裹起来;orallonthesameline'comma-dangle':['error','only-multiline'],//允许在对象或数组的最后一项添加逗号(不与右括号对齐)'comma-spacing':'error',//要求逗号后有空格,禁止在逗号前加空格'comma-style':'error',//要求逗号放在数组元素、对象属性后或变量声明,并在同一行'computed-property-spacing':'error',//禁止在计算属性中使用空格,例如obj['a']为false,obj['a']为true'eol-last':'error',//强制在文件末尾留空行'func-call-spacing':'error',//函数名和括号之间禁止空格'function-paren-newline':'error',//强制函数括号内的参数为换行或不为换行'implicit-arrow-linebreak':'error',//禁止箭头函数隐式返回出现在换行之前箭头函数体'indent':['error',2],//使用一致的缩进,2个空格'jsx-quotes':'error',//在jsx中强制使用双引号'key-spacing':'error',//强制对象键在冒号后有一个空格'lines-around-comment':'error',//需要块级注释/**/'multiline-comment-style':'error',//multiline行注释样式相同,每行前面必须有*'new-cap':'error',//要求构造函数首字母大写'newline-per-chained-call':['error',{'ignoreChainWithDepth':2}],//链调用长度超过2时,强制换行'no-lonely-if':'error',//禁止单if'no-multiple-empty-lines':'inelseerror',//限制最多两个空行'no-trailing-spaces':'error',//禁止在空行中使用空白字符'no-unneeded-ternary':'error',//禁止冗余的三元表达式,比如a===1?true:false应该简写为a===1'no-whitespace-before-property':'error',//属性前禁止空格,比如console.log(obj['a']),有日志前面的空白有问题'nonblock-statement-body-position':'error',//强制单行语句不换行'object-curly-newline':['error',{'multiline':true}],//对象个数必须有一致的换行符,全部换行或者无'object-curly-spacing':['error','always'],//强制对象/解构赋值/有花括号前后的空格比如import'object-property-newline':['error',{'allowAllPropertiesOnSameLine':true}],//强制对象的属性在同一行或者所有换行'一个-var-declaration-per-line':'error',//强制变量初始化语句包裹'operator-assignment':'error',//尽可能简化赋值操作,比如x=x+1应该简化为x+=1'quotes':['error','single'],//要求字符串尽可能使用单引号'semi':['error','never'],//没有分号'semi-spacing':'error',//强制在分号后加一个空格,比如for(leti=0;i<20;i++)'semi-style':'error',//强制出现一个分号在句子末尾'space-before-blocks':'error',//强制块(forloop/if/function等)前面有一个空格,比如for(...){}错误,花括号前需要一个空格:for(...){}'space-infix-ops':'error',//强制运算符(+-/*)前后有一个空格'spaced-comment':'error',//强制注释(//或/*)后面必须跟一个空格//--下面是ECMAScript6ES6相关的'arrow-body-style':'error',//当第一个函数体的花括号可以省略时,不允许使用花括号'arrow-parens':['error','as-needed'],//当有时,不允许使用括号只有一个箭头函数参数'arrow-spacing':'error',//需要箭头函数=>前后有空格'no-confusing-arrow':'error',//禁止使用可能与比较运算符混淆的箭头函数'no-duplicate-imports':'error',//禁止重复导入'no-useless-computed-key':'error',//禁止不必要的计算属性,例如obj3={['a']:1},其中['a']不需要,直接写'a''no-var':'error',//requireletorconstinsteadofvar'object-shorthand':'error',//要求对象字面量使用速记'prefer-const':'error',//要求使用const来声明不会被修改的变量'prefer-destructuring':['error',{'array':false,'object':true},{'enforceForRenamedProperties':true}],//需要优先使用结构体赋值,enforceForRenamedProperties为true才能应用规则重命名的变量'prefer-template':'error',//使用模板字符串而不是字符串拼接'rest-spread-spacing':'error',//展开运算符...和表达式之间不允许有空格,比如...re1error,应该是...re1'template-curly-spacing':'error',//模板字符串前后没有空格${}}}webstorm配置ESLint复制的位置eslint被下载到这个“ESLint包”
