本文介绍: 本文记录工作eslint相关的内容,常用的配置插件等;团队项目规范尤其重要,否则合并代码的时候会有大量冲突出现;通过eslintvscode工作区的setting.json设置能有效的使团队的规范保持一致;

**相关章节**

前端规范(一)之ESlint以及@antfu/eslint-config
前端规范(二)之Prettier
前端规范(三)之stylelint
前端规范(四)之husky+lint-staged+commitizen+commitlint


ESlint

本文记录工作eslint相关的内容,常用的配置插件等;
团队项目中规范尤其重要,否则合并代码的时候会有大量冲突出现;
通过eslintvscode工作区的setting.json设置能有效的使团队的规范保持一致;

@antfu/eslintconfig预设配置(推荐)

介绍ESlint之前推荐一个项目,也就是Anthony Fu大佬的开源项目ESlint的预设配置项目,可以省去一堆的配置,值得注意的是Anthony Fu并不适用Prettier,可以看看大佬的下面这篇文章介绍

Why I don’t use Prettier (antfu.me)

只需简单安装后在.eslintrcpackage.json文件中维护以下 内容即可简单快捷

[详细内容查看@antfu/eslintconfig](antfu/eslint-config: Anthony’s ESLint config presets (github.com))

pnpm add -D eslint @antfu/eslint-config
{
  "extends": "@antfu"
}
{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}

安装

vscode插件商城直接搜索Eslint,值得注意的是我们需要在项目中适用npm安装ESlint,因为我们需要对我们的代码进行检测

npm i eslint -D

初始化

初始化的时候会有交互,根据你自己的实际项目选择即可,选完交互后会有推荐需要安装npm包;

在这里插入图片描述

npx eslint --init

初始化完成后会自动生成.eslintrc.cjs文件

module.exports = {
    "env": {
        "browser": true, // 支持浏览器环境检测
        "es2021": true, // 支持es2021语法检测
        "node": true // 支持node环境检测
    },
    "extends": [
        "eslint:recommended", // 使用eslint推荐配置进行检测
        "plugin:vue/vue3-essential", // 支持vue3相关语法检测
        'plugin:@typescript-eslint/recommended' //ts推荐进行配置
    ],
    "overrides": [
    ],
    'parser': 'vue-eslint-parser',
    "parserOptions": {
        "ecmaVersion": "latest", // 解析文件的时候使用最新的ecmaVersion
        "sourceType": "module", // 文件是ES6模块规范
        'parser': '@typescript-eslint/parser',
    },
    "plugins": [
        "vue",
        '@typescript-eslint'
    ],
    "rules": { // 配置自己项目特有的一些检测规则
        quotes: ['error','single'] //单引号示例
    }
}

vscode工作设置

vscode设置分组用户设置工作设置,其中用户设置全局生效工作区是当前项目生效工作区的级别高于用户设置,开启保存的时候自动格式化代码
在这里插入图片描述

{
    "editor.codeActionsOnSave": {
        "source.fixAll": true,
        "source.fixAll.eslint": true
    },
}

package.json增加脚本

 "scripts": {
    "dev": "vite",
    "build": "vue-tsc && vite build",
    "preview": "vite preview",
    "lint:eslint": "eslint --cache --max-warnings 0  "{src,mock}/**/*.{vue,ts,tsx}" --fix"
  },

运行检测脚本

npm run lint:eslint

在这里插入图片描述

与Prettier冲突解决方法

有人说那不是会格式化两次吗,eslint格式化一次,Prettier又格式化了一次为什么需要两个配置项,简化成一个不行吗,这个其实社区也有给VsCode提过意见,VsCode给的答案大致意思是它们各司其职,所以还是要两个都保留。

冲突场景举例

举例一种冲突场景

Eslint配置单引号

Prettier配置双引号

冲突现象

因为Prettier里的规则使用双引号两个同时存在的时候,最终格式化出来的结果会以Prettier里的规则为准,也就是说Eslint和Prettier都会对文件进行格式化,可是Prettier格式化的会覆盖掉Eslint格式化的。所以最终格式化的结果双引号的。

解决方法

eslint-pluginprettier 和 eslint-configprettier可以有效的解决冲突问题

其中eslint-configprettier会把Eslint里和Prettier有冲突的规则关掉,eslint-pluginprettier会将Prettier里的规则设置到Eslint里面通过两个插件的配合,就完成了Eslint和Prettier规则合并,其中冲突的规则以Prettier里的规则为准。

npm install -D eslint-plugin-prettier eslint-config-prettier

原文地址:https://blog.csdn.net/weixin_42424283/article/details/128806611

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_14027.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注