eslint作为项目代码风格管理工具Prettier,可以认为是一个帮助代码格式化的工具。构建项目时,使用vue-cli初始化项目时选择eslint:默认有3种样式。eslintrc.js描述会在项目根目录文件中生成一个.eslintrc.js,可以用来配置代码检测,比如规则的配置,相关配置示例如下:module.exports={//此项用于告诉eslint查找当前配置文件而不是从parent中查找root:true,//此项用于指定eslint解析器,解析器必须符合规则,babel-eslintparser是对babel解析器的包装,以便可以用ESLint解析parser:'babel-eslint',//此项用于指定javaScript语言类型和样式,sourceType用于指定js导入方式,默认是script,这里设置为module,指的是某个import方法parserOptions:{//设置script(默认)还是module,如果代码在ECMASCRIPT中modulesourceType:'module',"ecmaVersion":6,"ecmaFeatures":{"jsx":true}},//此项指定了全局变量环境,以下配置指定为浏览器环境env:{"browser":true,"node":true,"commonjs":true,"es6":true,"amd":true},//https://github.com/standard/standard/blob/master/docs/RULES-en.md//此项用于配置标准的js风格,也就是说写代码的时候要写成标准化的方式。如果你使用vs-code,我想你应该可以避免错误。extends:'vue',//此项用于提供插件。插件名称省略了eslint-plugin-。以下配置用于标准化html插件:['html',"flow-vars","react"],/*以下规则用于设置插件规范代码的规则。使用时必须去掉前缀eslint-plugin-。主要有以下设置规则。可以设置字符串也可以设置数字,两者的效果是一样的。warn"->1启用警告规则"error"->2启用错误规则*/rules:{//不需要"space-before-function-paren":0,//是否应该有定义函数时括号前的空格"eol-last":0,//文件以单个换行符结尾"no-extra-semi":0,//允许额外的冒号"semi":0,//语句canendwithoutasemicolon"eqeqeq":0,//必须使用同余"one-var":0,//连续声明"no-undef":0,//可以有未定义的变量//Warning"no-extra-boolean-cast":1,//不必要的bool转换"no-extra-parens":1,//不必要的括号"no-empty":1,//block语句中的内容不能为空"no-use-before-define":[1,"nofunc"],//can'tuse"complexity"beforeundefined:[1,10],//cyclomaticcomplexity"no-unused-vars":1,//can'声明变量或参数后未使用//vue"flow-vars/define-flow-type":1,"flow-vars/use-flow-type":1,//react"react/jsx-uses-反应”:2,"react/jsx-uses-vars":2,//error"comma-dangle":[2,"never"],//对象文字项不能有尾随逗号"no-debugger":2,//禁用调试器"no-constant-condition":2,//在条件中禁用常量表达式if(true)if(1)"no-dupe-args":2,//函数参数不能重复"no-dupe-keys":2,//创建对象字面量时不允许键重复{a:1,a:1}"no-duplicate-case":2,//switch中的case标签不能重复"no-empty-character-class":2,//[]中的内容正则表达式不能为空"no-invalid-regexp":2,//禁止无效正则表达式"no-func-assign":2,//禁止重复函数声明"valid-typeof":2,//必须使用合法typeofValue"no-unreachable":2,//不能有不可执行的代码"no-unexpected-multiline":2,//避免多行表达式"no-sparse-arrays":2,//禁止稀疏数组,[1,,2]"no-shadow-restricted-names":2,//严格模式下指定的受限标识符在声明时不能作为变量名"no-cond-assign":2,//禁止在使用条件表达式中的赋值语句“no-native-reassign”:2,//不能重写本机对象//codestyle"no-else-return":1,//如果if语句中有return,则后面不能跟else语句"no-multi-spaces":1,//不能使用多余的空格"key-spacing":[1,{//对象字面量中冒号前后的空格"beforeColon":false,"afterColon":true}],"block-scoped-var":2,//在块语句中使用var"consistent-return":2,//是否允许在return后省略"accessor-pairs":2,//在对象中使用getter/setter"dot-location":[2,"property"],//对象访问器的位置,换行时是行首还是行尾"no-lone-blocks":2,//禁止不必要的嵌套块"no-labels":2,//禁止标签声明"no-extend-native":2,//禁止扩展原生对象"no-floating-decimal":2,//禁止在浮点数中省略0.53."no-loop-func":2,//禁止在循环中使用函数(如果没有引用外部变量,形成闭包就好了)"no-new-func":2,//禁止使用newFunction"no-self-compare":2,//不能比较自己"no-sequences":2,//不要使用逗号运算符"no-throw-literal":2,//不抛出literalerrorsthrow"error";"no-return-assign":[2,"always"],//返回语句中不能有赋值表达式"no-redeclare":[2,{//不要重新声明variables"builtinGlobals":true}],"no-unused-expressions":[2,{//禁止无用的表达式"allowShortCircuit":true,"allowTernary":true}],"no-useless-call":2,//禁止不必要的调用并应用"no-useless-concat":2,"no-void":2,//禁用voidoperator"no-with":2,//Disablewith"space-infix-ops":2,//是否围绕中缀运算符Space"valid-jsdoc":[2,{//jsdocrules"requireParamDescription":true,"requireReturnDescription":true}],"no-warning-comments":[2,{//不能有警告注释"terms":["todo","fixme","anyotherterm"],"location":"anywhere"}],"curly":1,//if()中必须使用{}{}//commonjs"no-duplicate-imports":1}}vscode安装prettier插件如果想在保存代码的时候自动格式化,可以安装插件在vscode中配置prettierrc,然后在项目根目录添加一个.prettierrc.js,自定义格式化样式,所有属性都可以在这里找到module.exports={printWidth:120,//其中的字符数alinewrapstabWidth:2,//一个tab表示空格个数useTabs:false,//是否使用tabs进行缩进singleQuote:true,//字符串是否使用单引号semi:true,//是否使用a行尾分号,默认为truetrailingComma:'none',//是否使用尾部逗号bracketSpacing:true,//对象大括号之间是否直接有空格,默认为true,theeffect:{foo:bar}endOfLine:"auto"//Windows和Unix保留下面的换行符};配置句末强制加分号(semi:true),eslint规则中去掉“semi”即可:["error","always"]参考:https://www.cnblogs.com/ainsl...https://www.jb51.net/article/...https://www.jb51.net/article/...https://www.jianshu.com/p/411...
