这种标准化编程规范解决方案的代码检测工具,为什么需要编程规范?工欲善其事,必先利其器。对于大型的企业级项目,我们通常是多人团队一起开发。而且因为团队成员对技术的理解参差不齐,所以会导致一种情况,就是《一个项目无法具备统一的编程规范,导致项目的代码像多个不同材质的补丁拼接起来一样》想象下面的代码是一个团队开发的,因为没有统一的代码标准,所以会生成如下代码:这段代码运行没有问题,但是整体代码结构非常丑陋。有的地方有空格分隔,有的地方没有,有的地方有单引号,有的地方有双引号,有的地方有分号,有的地方没有分号……虽然这样的项目可以正常但是,如果你把它在大厂的项目中,会失败,会被认为是不可维护、不可扩展的代码内容。那么大厂所谓的标准代码结构应该是什么样的呢?我们把上面的代码修改一下,做个对比:修改后的代码有了统一的规范后,是不是看起来舒服多了!而以上列举的只是《编程规范》的一小部分!那么可能有同学会说,你列出这些编程规范有什么用呢!就算你写一本书,我们团队这么多人,也不能指望每个人都看,严格遵守你说的规范!你是对的!指望人们积极遵守这些规范是不现实的,那我们该怎么办呢?那么我们是否可以另辟蹊径,让程序自动处理归一化的内容呢?答案是:是的!本系列分享给大家的是如何自动规范代码,主要包括:编码标准git标准两种编程标准1:代码检测工具ESLint在我们去创建项目的时候,脚手架工具已经帮我们安装好了ESLint代码检测工具。对于ESLint这个名字,同学们应该或多或少都听说过,但是可能有的同学知道的多,有的同学知道的少。那么我们先来说说这一段。ESLint,一个知名的代码检测工具,首先是一个开源项目,创建于2013年6月。它的目标很简单。只有一个,那就是提供一个插件式的javascript代码检测工具,说白了,就是用来检测代码格式的。在我们现在的项目中,它包含了一个.eslintrc.js文件,也就是eslint的配置文件。随着大家越来越重视代码格式的标准化,eslint也逐渐被更多人所接受。同时,很多大公司都在原有eslint规则的基础上做了一些扩展。当我们创建项目时,我们做出了这样的选择:?选择一个linter/formatterconfig:ESLintwitherrorpreventiononly//ESLintthatonlycontainserrorsESLint+Airbnbconfig//Airbnb'sESLintextensionrulesESLint+Standardconfig//StandardESLintrules我们目前选择标准的ESLint规则,所以让我们继续规则并查看ESLint的一些配置有哪些?打开项目中的.eslintrc.js文件//ESLint配置文件遵循commonJS导出规则,导出对象为ESLint配置对象//文档:https://eslint.bootcss.com/docs/user-guide/configuringmodule。exports={//表示当前目录为根目录,ESLint规则会限制在该目录root:true,//env表示开启ESLint检测的环境env:{//启动ESLint检测节点在nodeenvironment:true},//ESLint中的基础配置需要继承配置extends:["plugin:vue/vue3-essential","@vue/standard"],//parserparserOptions:{parser:"babel-eslint"},//启用的需要修改的规则及其各自的错误级别/***错误级别分为三种:*"off"or0-关闭规则*"warn"or1-turn在规则上,使用警告级别错误:警告(不会导致程序退出)*“错误”或2-启用规则,使用错误levelerror:错误(触发时,程序会退出)*/rules:{"no-console":process.env.否ODE_ENV===“生产”?“警告”:“关闭”,“无调试器”:process.env.NODE_ENV===“生产”?“警告”:“关闭”}};所以这里我们大概了解了.eslintrc.js文件之后,基于ESLint,如果我们有不符合规范的代码格式,那么我们就会得到相应的错误。例如:我们可以将Home.vue中的name属性的值从单引号改为双引号Quotes这个错误的意思是:这时候我们触发了一个《错误级别的错误》错误触发的位置在第9列line13ofHome.vue错误描述为:Stringsmustusesinglequotes错误规则为:quotesthenwant要解决这个错误,我们通常有两种方式:根据ESLint的要求修改代码修改ESLint的校验规则根据修改代码对ESLint的要求:在Home.vue的第13行将双引号改为单引号修改ESLint的校验规则:在.eslintrc.js文件中,添加一条新的校验规则"quotes":"error"//default"quotes":"warn"//修改为警告"quotes":"off"//修改不改但是在一个团队中,人员水平参差不齐,大量的ESLint规则校验会让很多开发者头疼,影响很大项目的开发进度。试想一下,当你在完成项目代码的时候,还需要时时刻刻关注代码的格式,那该有多痛苦啊!那么有没有什么办法既能保证ESLint规则的校验,又能解决因格式规则严格而影响项目进度的问题呢?请看下一节《二、标准化编程规范解决方案之自动格式化工具 Prettier》
