前端项目增加eslint全过程

简介: 如何在前端项目中安装并配置ESLint和Prettier,包括VSCode插件的安装、npm包的全局安装、.eslintrc.js配置文件的生成以及编辑器设置的调整。

vscode插件和npm包区别:

ESLint插件和ESLint npm包是相辅相成的,ESLint插件首先调用的,
就是当前项目目录下的ESLint包,如果没有,就会去查找有没有全局安装的ESLint包。

所以,以ESLint为例,vscode插件和npm包的区别:

1.vscode中的ESLint插件,需要项目里或者全局安装ESLint包,插件检查代码时,还是在调用ESLint包来进行检查,然后将报错反馈给vscode,这样我们才能在vscode编辑器里,直接看到代码里的红色波浪线等错误提示;
2.如果只安装了ESLintnpm包,没有安装ESLint插件,那在vscode中,代码不会有红色波浪线等警告提示,我们要进行代码质量检查的话,需要在终端里通过./node_modules/.bin/eslint xx.js命令,在终端中来查看xx.js文件的ESLint报错信息。

一、首先

在vscode安装插件
ESLint插件 和 prettier插件
prettier
在这里插入图片描述

二、在项目中全局安装npm插件

1. 在新项目中 选择全局安装
npm install -g eslint
2.在项目根目录 cmd初始化eslint
//初始化eslint 选择对应配置
eslint --init

这个项目图片为vue,例子我是用的react
在这里插入图片描述
会生成一个.eslintrc.js文件。

3.下载使用prettier的代码样式
npm i -D prettier eslint-config-prettier

具体实现在 .eslintrc.js中extends属性中
一定要写在最后,不然替换不了

  extends: [
    'plugin:react/recommended',
    'airbnb',
    "prettier"
  ],

在这里插入图片描述
.editorconfig对vscode的配置。
.prettierrc.json对代码风格的控制。
.eslintrc.js对代码的要求。
当然可以写prettierrc的过滤文件名
同样的根目录 .prettierignore
不管是使用eslint还是prettierrc最终都是vscode在执行。(vscode直接报警告波浪线为成功)

三、对eslint、prettier的具体配置

eslint

/*
 * @Descripttion: 
 * @version: 
 * @Author: ZhangJunQing
 * @Date: 2022-07-15 15:02:27
 * @LastEditors: ZhangJunQing
 * @LastEditTime: 2022-07-15 15:25:17
 */
module.exports = {
   
  root: true,
  env: {
   
    browser: true,
    es2021: true,
    node: true,
  },
  extends: [
    'plugin:react/recommended',
    'airbnb',
    "prettier"
  ],
  parserOptions: {
   
    ecmaFeatures: {
   
      jsx: true,
    },
    ecmaVersion: 'latest',
    sourceType: 'module',
  },
  plugins: [
    'react',
  ],
  rules: {
   
    // "no-console": "off",
    // 不校验是linux或者是windows的空格
    // Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。Git 的“换行符自动转换”功能听起来似乎很智能、很贴心,因为它试图一方面保持仓库内文件的一致性(UNIX 风格),一方面又保证本地文件的兼容性(Windows 风格)。但遗憾的是,这个功能是有 bug 的,而且在短期内都不太可能会修正。
    'linebreak-style': [0, "error", "windows"],
    quotes: "off", // ['error', 'single'], //js使用单引号
    "no-multi-spaces": "off", // 不能用多余的空格
    // 使用 === 替代 ==
    eqeqeq: [2, "allow-null"],
    "no-const-assign": 2, // 禁止修改const声明的变量
    "no-constant-condition": 2, // 禁止在条件中使用常量表达式 if(true) if(1)
    "no-redeclare": 2, // 禁止重复声明变量
    "no-spaced-func": 2, // 函数调用时 函数名与()之间不能有空格
    "no-undef": 1, // 不能有未定义的变量
    "no-unreachable": 2, // 不能有无法执行的代码
    "no-unused-vars": [2, {
    vars: "all", args: "after-used" }], // 不能有声明后未被使用的变量或参数
    "no-use-before-define": 2, // 未定义前不能使用
    "no-useless-call": 2, // 禁止不必要的call和apply
    "no-var": 0, // 禁用var,用let和const代替
    "func-names": 0, // 函数表达式必须有名字
    "func-style": [0, "declaration"], // 函数风格,规定只能使用函数声明/函数表达式
    "use-isnan": 2, // 禁止比较时使用NaN,只能用isNaN()
    "no-mixed-spaces-and-tabs": [0], // 关闭禁止混用tab和空格

    'no-cond-assign': 'error', // 禁止条件语句出现赋值
    'no-constant-condition': 'error', // 禁止使用已知数判断
    'no-dupe-args': 'error', // 禁止出现同名参数
    'no-dupe-keys': 'error', // 禁止出现重复的key
    'no-duplicate-case': 'error', // 不允许出现重复的case
    'no-empty': 'error', // 禁止出现空语法块
    'no-ex-assign': 'error', // 禁止对catch参数重新赋值
    'no-extra-boolean-cast': 'error', // 禁止不必要的布尔转换

    'no-global-assign': 'error', // 禁止对只读的对象属性赋值
    'no-redeclare': 'error', // 禁止声明多个相同的变量
    // indent: ['error', 4], // 空格为4个字符

    // semi: ['error', 'always'], // 结尾需要分号
    "no-trailing-spaces": "off",
    "comma-dangle": "off",//尾随逗号
    "object-curly-newline": "off", // 引入变量 还得换行 关闭!!!
    "react/jsx-filename-extension": [0],
    "arrow-parens": "off",//箭头函数 可以不写 ()
  },
};

prettier

{
   
    "bracketSpacing": true,
    "printWidth": 160,
    "tabWidth": 4,
    "useTabs": false,
    "semi": false,
    "singleQuote": true,
    "trailingComma": "none"
}

我们可以配置针对eslint或者prettier的过滤文件,类似git的忽略文件。
.eslintignore
.prettierignore

# 忽略build目录下类型为js的文件的语法检查
build/*.js
# 忽略src/assets目录下文件的语法检查
src/assets
# 忽略src/utils目录下文件的语法检查
src/utils
# 忽略public目录下文件的语法检查
public
# 忽略当前目录下为js的文件的语法检查
#*.js
# 忽略当前目录下为vue的文件的语法检查
#*.vue
src/axios
src/com
src/styles
src/reportWebVitals.js

四、最开始我们安装了编辑器的插件eslint和prettier

配置编辑器的设置
ESLint则是用于代码质量检查,可以提示和更正代码错误

1.选择左下角齿轮 ---- 设置 — 文本编辑器 —下拉选择 在settings.json 中打开
在文件中增加:

   "editor.codeActionsOnSave": {
   
        "source.fixAll": true,
        "source.fixAll.eslint":true
    },
    //每次保存自动格式化
    "editor.formatOnSave": true,
    // 每次保存将代码按照eslint格式吸附
    // "eslint.autoFixOnSave": true,
    "eslint.enable": true,
    "eslint.validate": [
        "javascriptreact",
        "javascript",
        "html",
        "vue",
        "react",
    ],
    "eslint.options": {
   
        //  "configFile": "E:/projects/.eslintrc.js", //此路径值指向上一步创建的.eslintrc.js文件地址(如果是放在项目根目随项目走,这句无需配置)
        "plugins": [
            "html"
        ],
        "settings": {
   
            "html/html-extensions": [
                ".html",
                ".vue",
                ".js",
                ".jsx",
            ]
        }
    },
    "eslint.run": "onType",
    "eslint.workingDirectories": [
        ".eslintrc.js"
    ],
    "eslint.nodePath": "D:\\node_modules",
    "security.workspace.trust.untrustedFiles": "open"

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存后能自动格式化,并且会按照eslint的配置给我们报错,vscode会出现报错波浪线提醒。

记一次配置eslint,过程肯定不是很标准,理解可能不是很到位,如有不对,还请留言,我斧正。

目录
相关文章
|
4月前
|
前端开发 JavaScript
前端常用的ESlint配置
前端常用的ESlint配置
97 1
|
JSON 前端开发 Shell
前端项目添加代码规范(eslint prettier stylelint husky lint-staged commitlint)
前端项目添加代码规范(eslint prettier stylelint husky lint-staged commitlint)
308 0
|
1月前
|
JavaScript 前端开发 开发者
【颠覆你的前端世界!】VSCode + ESLint + Prettier:一键拯救Vue代码于水深火热之中,打造极致编程体验之旅!
【8月更文挑战第9天】随着前端技术的发展,保持代码规范一致至关重要。本文介绍如何在VSCode中利用ESLint和Prettier检查并格式化Vue.js代码。ESLint检测代码错误,Prettier保证风格统一。首先需安装VSCode插件及Node.js包,然后配置ESLint和Prettier选项。在VSCode设置中启用保存时自动修复与格式化功能。配置完成后,VSCode将自动应用规则,提升编码效率和代码质量。
220 1
|
4月前
|
JSON 资源调度 前端开发
前端工具 Prettier 详细使用流程(兼容ESLint)
前端工具 Prettier 详细使用流程(兼容ESLint)
204 0
|
JavaScript 前端开发
在VSCode中 使用 ESLint + Prettier检查代码规范及自动格式化前端Vue代码
般的代码格式化工作,ESLint完全可以胜任,为什么要用Prettier代替ESLint的代码格式化功能?简而言之,Prettier的代码格式化功能比ESLint更强大,配置更简单,通过配置,ESLint可以使用Prettier的代码规则进行校验,如果不配置好,会出现冲突,导致二者不能配合使用。 下面详细介绍如何配置ESLint+Prettier在VSCode中开发Vue代码:
1268 29
在VSCode中 使用 ESLint + Prettier检查代码规范及自动格式化前端Vue代码
|
3月前
|
JavaScript 前端开发
【前端 - Vue】关于ESlint代码规范及格式化插件
【前端 - Vue】关于ESlint代码规范及格式化插件
|
资源调度 前端开发 JavaScript
【前端规范全攻略】开启高效开发之旅!ESLint + Prettier + husky + lint-staged+Commitizen
如何统一代码风格,规范提交呢? 推荐使用`前端规范全家桶` ESLint + Prettier + husky + lint-staged。
512 0
【前端规范全攻略】开启高效开发之旅!ESLint + Prettier + husky + lint-staged+Commitizen
|
开发框架 前端开发
【前端二次开发框架关于关闭eslint】
【前端二次开发框架关于关闭eslint】
【前端二次开发框架关于关闭eslint】
|
JSON 资源调度 前端开发
前端工具 Prettier 详细使用流程(兼容ESLint)
前端工具 Prettier 详细使用流程(兼容ESLint)
241 0
|
JSON 前端开发 JavaScript
【vue3-element-admin】ESLint+Prettier+Stylelint+EditorConfig 约束和统一前端代码规范
【vue3-element-admin】ESLint+Prettier+Stylelint+EditorConfig 约束和统一前端代码规范