![72ed4ca8266334932024ed3bef60c692.png](https://img-blog.csdnimg.cn/img_convert/72ed4ca8266334932024ed3bef60c692.png)
简介
前端项目,主要有两种选择ESLint
和TSLint
。TSLint
仅针对TS
代码,因此如果采用TSLint
规范TS
代码,JS
代码需要采用其他工具。而ESLint
不仅能规范js
代码,通过配置解析器,也能规范TS
代码。此外由于性能问题,TypeScript
官方决定全面采用ESLint
。
Eslint
的主要功能包含代码格式的校验,代码质量的校验,JS
规范,如用===而不是==判断相等、用驼峰命名变量而不是用下划线。而 Prettier
是美丽的意思,只是代码格式的校验(并格式化代码),不会对代码质量进行校验,如单行代码长度、tab 长度、空格、逗号表达式等问题。在实际项目中,eslint
可以检测出代码问题,并标红,但是并不会自动格式化,需要手动格式化,接入Prettier
并配置(需要分webstorm
和vscode
)可以进行自动化。但是需要考虑到的是,prettier
和eslint
的规则有可能冲突,因此需要考虑到当冲突时,需要解决冲突,以谁的标准为准,正常是以prettier
为准。
起步
如果是新的项目,用vue
官方的脚手架拉取项目时,在下面的步骤中选择Eslint+Prettier
就好了,我们可以发现,官方也是集成了Eslint+Prettier
的,因此还是比较靠谱的:
![a33066be8354fa84b22bebbcae2c7153.png](https://img-blog.csdnimg.cn/img_convert/a33066be8354fa84b22bebbcae2c7153.png)
安装 Eslint 依赖
npm i -D eslint babel-eslint eslint-plugin-vue @vue/cli-plugin-eslint
eslint
:ESLint
的核心代码babel-eslint
:eslint
与babel
整合包eslint-plugin-vue
@vue/cli-plugin-eslint
:eslint
与vue
整合包
当然如果已经安装过了,就可以不用安装了。
配置 Eslint
在项目的根目录下,新建.eslintrc.js
文件,并将下面代码拷贝进去,具体规则看注释。或者看StandardJS 官方
// .eslintrc.js
module.exports = {
root: true,
parserOptions: {
// 定义ESLint的解析器
parser: "babel-eslint",
sourceType: "module",
},
// 指定代码的运行环境
env: {
browser: true,
node: true,
es6: true,
},
extends: [
//继承 vue 的标准特性
"plugin:vue/essential",
"eslint:recommended",
],
// 自定义eslint规则,严格按照StandardJS
rules: {
"vue/max-attributes-per-line": [
2,
{
singleline: 10,
multiline: {
max: 1,
allowFirstLine: false,
},
},
],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline": "off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
// 两个空格缩进
indent: [
2,
2,
{
SwitchCase: 1,
},
],
// 单引号
quotes: [
2,
"single",
{
avoidEscape: true,
allowTemplateLiterals: true,
},
],
// 未使用的变量
"no-unused-vars": [
2,
{
vars: "all",
args: "after-used",