Vue-9.集成(.editorconfig、.eslintrc.js、.prettierrc)

介绍

同时使用 .editorconfig、.prettierrc 和 .eslintrc.js 是很常见的做法,因为它们可以在不同层面上帮助确保代码的格式一致性和质量。这种组合可以在开发过程中提供全面的代码维护和质量保证。然而,这也可能增加一些复杂性,需要谨慎配置和协调(其实就是它们之间有交集的配置,这部分配置必须一致,所以我下面的配置都是配套的)。

简单示例

当同时使用 .editorconfig.prettierrc.eslintrc.js 这些配置文件时,可以实现一致的代码格式、规范和质量。以下是一个详细的示例,展示如何在一个项目中配置这些文件:

  1. .editorconfig 文件示例:

.editorconfig 文件用于定义代码编辑器的基本格式规范,以确保开发人员在不同编辑器中具有一致的代码格式。

# 根据项目的编程语言和需求设置默认配置
root = true

# 通用配置
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# 针对不同类型文件的配置
[*.{js,jsx,ts,tsx,vue}]
indent_size = 2

[*.md]
trim_trailing_whitespace = false
  1. .prettierrc 文件示例:

.prettierrc 文件用于配置 Prettier 格式化工具的格式规范,确保代码在不同编辑器中保持一致的风格。

{
  "printWidth": 80,
  "tabWidth": 2,
  "singleQuote": true,
  "trailingComma": "es5"
}
  1. .eslintrc.js 文件示例:

.eslintrc.js 文件用于配置 ESLint 代码静态分析工具的规则和格式,确保代码的质量和一致性。

module.exports = {
  env: {
    browser: true,
    es6: true
  },
  extends: ['eslint:recommended', 'plugin:vue/essential'],
  plugins: ['vue'],
  rules: {
    'no-console': 'off',
    'no-unused-vars': 'warn',
    'vue/no-unused-components': 'warn'
  }
};

在这个示例中,.editorconfig.prettierrc.eslintrc.js 配置文件都被放置在项目根目录中。通过这些配置,我们实现了以下效果:

  • .editorconfig 定义了通用的代码格式规范,包括缩进、换行符、字符集等。
  • .prettierrc 配置了 Prettier 的代码格式规则,如行宽、缩进、引号类型等。
  • .eslintrc.js 定义了 ESLint 的代码质量规则,包括不允许使用 console、警告未使用的变量等。

通过同时使用这些配置文件,可以确保项目中的代码在编辑器中保持一致的格式,遵循一致的规范,并且符合预定的代码质量标准。这有助于提高协作效率、代码质量和可维护性。

企业级配置

.editorconfig

# 通用设置
[*]
# 使用 UTF-8 字符集
charset = utf-8
# 使用 LF(换行符)
end_of_line = lf
# 文件末尾不需要插入空行
insert_final_newline = false
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对特定文件类型的设置
[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对另一系列文件类型的设置
[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对一些配置文件的设置
[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对 .svg 文件的设置
[*.svg]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对 .js.map 文件的设置
[*.js.map]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对 .less 文件的设置
[*.less]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对 .vue 文件的设置
[*.vue]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

# 针对另一些配置文件的设置
[{.analysis_options,*.yml,*.yaml}]
# 使用空格作为缩进
indent_style = space
# 缩进大小为 2 个空格
indent_size = 2

.eslintrc.js

你提供的是一个 .eslintrc.js 配置文件,用于配置 ESLint 规则,其中还包括了 Vue 3、Prettier 和 Jest 的集成。以下是你的配置文件的详细解释:

module.exports = {
  root: true, // 根配置文件
  env: {
    node: true, // 运行环境为 Node.js
  },
  extends: [
    "plugin:vue/vue3-essential", // 使用 Vue 3 的基本规则
    "eslint:recommended", // 使用 ESLint 推荐的规则
    "plugin:prettier/recommended", // 集成 Prettier 的推荐规则
  ],
  parserOptions: {
    parser: "@babel/eslint-parser", // 使用 Babel 解析器
  },
  rules: {
    "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", // 在生产环境禁用 debugger
    "no-console": process.env.NODE_ENV === "production" ? "error" : "off",   // 在生产环境禁用 console
    "space-before-function-paren": 0, // 函数定义括号前不需要空格
    "vue/require-default-prop": "off", // 不要求默认的 prop
    "vue/require-prop-types": "off", // 不要求 prop 的类型
    "generator-star-spacing": "off", // 禁用 generator 函数 * 后的空格警告
    "no-mixed-operators": 0, // 允许混合使用运算符
    "vue/max-attributes-per-line": [
      // 每行最多属性数
      2,
      {
        singleline: 5, // 单行最多 5 个属性
        multiline: {
          max: 1, // 多行最多 1 个属性
          allowFirstLine: false,
        },
      },
    ],
    "vue/attribute-hyphenation": 0, // 不强制属性使用连字符
    "vue/html-self-closing": 0, // 不强制自闭合标签
    "vue/component-name-in-template-casing": 0, // 组件名大小写不敏感
    "vue/html-closing-bracket-spacing": 0, // 不强制标签闭合前的空格
    "vue/singleline-html-element-content-newline": 0, // 单行元素内容不需要新行
    "vue/no-unused-components": 0, // 允许定义未使用的组件
    "vue/multiline-html-element-content-newline": 0, // 多行元素内容不需要新行
    "vue/no-use-v-if-with-v-for": 0, // 允许同时使用 v-if 和 v-for
    "vue/html-closing-bracket-newline": 0, // 标签闭合括号不需要新行
    "vue/no-parsing-error": 0, // 允许存在解析错误
    "no-tabs": 0, // 允许使用制表符
    quotes: [
      // 引号配置
      2,
      "single",
      {
        avoidEscape: true, // 避免转义
        allowTemplateLiterals: true, // 允许模板字符串
      },
    ],
    semi: [
      // 分号配置
      2,
      "never",
      {
        beforeStatementContinuationChars: "never",
      },
    ],
    "no-delete-var": 2, // 禁止删除变量
    "prefer-const": [
      // 建议使用 const
      2,
      {
        ignoreReadBeforeAssign: false,
      },
    ],
    "template-curly-spacing": "off", // 关闭模板字符串中花括号间的空格
    indent: "off", // 关闭缩进检查
  },
  overrides: [
    {
      files: [
        "**/__tests__/*.{j,t}s?(x)",
        "**/tests/unit/**/*.spec.{j,t}s?(x)",
      ],
      env: {
        jest: true, // 在测试文件中启用 Jest 环境
      },
    },
  ],
};

解释如下:

  • root: true:表示该配置文件是项目的根配置文件,不会再向上查找其他配置文件。

  • env: { node: true }:指定代码的运行环境为 Node.js。

  • extends:继承其他的 ESLint 配置,这里使用了以下扩展配置:

    • "plugin:vue/vue3-essential":使用 Vue 3 的基本规则,该插件提供了与 Vue 3 一起使用的必要规则。
    • "eslint:recommended":使用 ESLint 推荐的规则,这些规则有助于提高代码质量和可读性。
    • "plugin:prettier/recommended":集成 Prettier 的推荐规则,确保 ESLint 和 Prettier 一起使用时不会冲突。
  • parserOptions:指定解析器选项,这里使用 @babel/eslint-parser 解析 JavaScript,与 Babel 一起使用。

  • rules:定义自定义的规则和规则覆盖。其中包括:

    • "no-console""no-debugger":根据环境决定是否允许使用 consoledebugger
  • overrides:覆盖配置,对特定文件或文件夹应用不同的配置。在此配置中,对测试文件启用了 Jest 环境。

.prettierrc

这是一个 Prettier 配置,Prettier 是一个用于格式化代码的工具,可以让你的代码在不同的编辑器中保持一致的样式。以下是你提供的 Prettier 配置的解释:

{
  "printWidth": 120, // 每行代码的最大字符数为 120
  "semi": false, // 不使用分号
  "singleQuote": true, // 使用单引号
  "prettier.spaceBeforeFunctionParen": true // 在函数参数的括号前添加空格
}

解释如下:

  • "printWidth": 120:限制每行代码的最大字符数为 120。当代码行超过这个字符数时,Prettier 会自动进行换行以保持代码的可读性。

  • "semi": false:不使用分号。Prettier 会自动删除你的代码中不必要的分号,以及为需要的地方添加分号。

  • "singleQuote": true:使用单引号。Prettier 会将字符串中的双引号替换为单引号,以保持一致的引号风格。

  • "prettier.spaceBeforeFunctionParen": true:在函数参数的括号前添加空格。这可以让函数定义更加清晰,比如 function foo( x ) 而不是 function foo(x)

你可以将这些配置应用到项目中的 .prettierrc.prettierrc.json 文件中,以确保你的代码在格式化时遵循这些规则。这将有助于团队成员在编辑代码时保持一致的风格。

在VsCode中如何使用

.editorconfig

在 Visual Studio Code 中使用 EditorConfig 可以帮助你维持一致的代码风格,并根据项目中的 .editorconfig 文件自动调整编辑器的设置。以下是如何在 VS Code 中使用 EditorConfig 的步骤:

  1. 安装 “EditorConfig for VS Code” 扩展:

    • 打开 VS Code。
    • 在侧边栏的扩展面板中搜索 “EditorConfig for VS Code”。
    • 点击安装按钮,安装扩展。
  2. 创建或定位到项目的 .editorconfig 文件:

    • 在项目根目录中创建一个名为 .editorconfig 的文件,如果该文件已经存在,则直接定位到它。
  3. 配置 .editorconfig 文件:

    • 编辑 .editorconfig 文件以定义你想要的代码风格规则。这个文件使用类似 INI 文件的语法。
    • 例如,你可以像下面这样配置一些常用的规则:
# 缩进风格
[*]
indent_style = space
indent_size = 2

# JavaScript 和 TypeScript 文件
[*.js]
indent_style = space
indent_size = 2

# Python 文件
[*.py]
indent_style = space
indent_size = 4

# 其他规则...
  1. 保存文件后,VS Code 将会根据 .editorconfig 文件自动调整编辑器设置,以保持一致的代码风格。

需要注意的是,“EditorConfig for VS Code” 扩展会自动读取项目中的 .editorconfig 文件,并根据配置调整编辑器设置。这使得团队中的开发人员可以共享相同的代码风格,无论他们使用哪种编辑器。

在使用 EditorConfig 时,也要注意是否与其他格式化工具(如 Prettier、ESLint 等)产生冲突。通常,EditorConfig 更多地用于基本的缩进、换行、编码等风格,而其他工具可以用于更高级的代码质量和规范性方面。

.eslintrc.js

在 Visual Studio Code 中使用 .eslintrc.js(或 .eslintrc.json)文件,可以帮助你在编辑代码时检测和修复代码质量问题,以及保持一致的代码风格。以下是在 VS Code 中使用 ESLint 的步骤:

  1. 确保已安装必要的软件:

    • 在项目根目录中确保已经安装了 ESLint 和相关插件,以及一个合适的配置文件(.eslintrc.js.eslintrc.json)。
  2. 安装 “ESLint” 扩展:

    • 打开 VS Code。
    • 在侧边栏的扩展面板中搜索 “ESLint”。
    • 点击安装按钮,安装扩展。
  3. 配置 ESLint 扩展:

    • 安装完 “ESLint” 扩展后,它会自动检测项目中的 .eslintrc.js.eslintrc.json 文件,并根据配置文件设置代码检查规则。
  4. 在编辑器中使用 ESLint:

    • 打开一个项目中的 JavaScript 或 TypeScript 文件。
    • 如果文件中存在不符合 ESLint 规则的代码,你会在编辑器的左下角看到一个小灯泡图标。
    • 将鼠标悬停在灯泡上,你将看到 ESLint 的错误或警告信息。
    • 点击灯泡图标,你可以选择应用修复或忽略错误。
  5. 自动修复代码问题:

    • 在编辑器中,你可以右键点击代码或选择一部分代码,然后点击右键菜单中的 “Fix all auto-fixable Problems”。
    • 这将自动修复当前文件中所有可以自动修复的问题,基于你的 ESLint 配置。

需要注意的是,VS Code 会自动检测项目中的 ESLint 配置文件,并根据配置在编辑器中显示错误和警告信息。使用 ESLint 扩展可以帮助你及时发现和修复代码质量问题,从而提高代码的可维护性和一致性。

如果你遇到了配置问题或其他问题,确保你的项目中已经正确安装了 ESLint 和相应的配置文件,并根据需要调整 VS Code 的设置。

.prettierrc

在 Visual Studio Code 中使用 .prettierrc(或 .prettierrc.json.prettierrc.yaml 等)文件,可以帮助你维持一致的代码格式,并自动应用 Prettier 的代码格式化规则。以下是在 VS Code 中使用 Prettier 的步骤:

  1. 确保已安装必要的软件:

    • 在项目根目录中确保已经安装了 Prettier 和相关插件,以及一个合适的配置文件(.prettierrc 或其他格式的配置文件)。
  2. 安装 “Prettier - Code formatter” 扩展:

    • 打开 VS Code。
    • 在侧边栏的扩展面板中搜索 “Prettier - Code formatter”。
    • 点击安装按钮,安装扩展。
  3. 配置 “Prettier - Code formatter” 扩展:

    • 在 VS Code 的设置中搜索 “Prettier”。

    在这里插入图片描述

    • 找到 “Prettier: Require Config” 设置,并将其设置为 “true”,以确保 VS Code 使用项目根目录中的 .prettierrc 文件。

    在这里插入图片描述

    • 如果你的 .prettierrc 文件位于项目根目录之外,你还可以在该设置中提供自定义的配置文件路径。
  4. 在编辑器中使用 Prettier:

    • 打开一个支持的代码文件(例如 JavaScript、TypeScript、CSS、JSON 等)。
    • 你可以使用快捷键(默认为 Shift + Alt + F)或右键点击编辑器中的代码,然后选择 “Format Document” 来应用 Prettier 的格式化规则。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  5. 自动保存时格式化:

    • 在 VS Code 设置中搜索 “Format On Save”。
    • 启用 “Editor: Format On Save” 设置,以便在保存文件时自动应用 Prettier 的格式化规则。

在这里插入图片描述

通过上述步骤,你可以在 Visual Studio Code 中轻松使用 Prettier 来保持一致的代码格式。当你保存文件时,Prettier 将自动格式化代码,确保代码风格的一致性。

确保你的项目中已经正确安装了 Prettier,并根据需要调整 VS Code 的设置以便与 Prettier 一起使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/85041.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文详解4种聚类算法及可视化(Python)

在这篇文章中,基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性,看一下对这些公司进行聚类的四种不同方式。 苹果(AAPL),亚马逊(AMZN),Facebook(META&…

【Java】Java如何生成随机数?

文章目录 前言一、Random类介绍二、Random类生成随机数1.生成随机数2.nextInt()方法 三、使用场景四、官方提示总结 前言 我们在学习 Java 基础时就知道可以生成随机数,可以为我们枯燥的学习增加那么一丢丢的乐趣。本文就来介绍 Java 随机数。 一、Random类介绍 …

docker的资源控制及docker数据管理

文章目录 docker的资源控制及docker数据管理一.docker的资源控制1.CPU 资源控制1.1 资源控制工具1.2 cgroups有四大功能1.3 设置CPU使用率上限1.4 进行CPU压力测试1.5 设置50%的比例分配CPU使用时间上限1.6 设置CPU资源占用比(设置多个容器时才有效)1.6.…

合宙Air724UG LuatOS-Air LVGL API--简介

为何是 LVGL LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。 LVGL特点: 强大的 控件 :按钮、图表、列表、滑动条、图像等 高级图形引擎:动…

【Visual Studio】生成.i文件

环境 VS版本:VS2013 问题 如何生成.i预编译文件? 步骤 1、打开VS项目属性,打开C/C\预处理器页面,【预处理到文件】选择是,开启。 2、生成文件如下。 3、正常编译需要关闭此选项。

ORB-SLAM2学习笔记9之图像帧Frame

文章目录 0 引言1 Frame类1.1 构造和重载函数1.1.1 双目相机1.1.2 RGBD相机1.1.3 单目相机 1.2 成员函数1.2.1 特征点去畸变1.2.2 特征点网格分配1.2.3 双目匹配1.2.4 RGBD相机深度计算 1.3 成员变量 2 Frame类的用途 0 引言 ORB-SLAM2学习笔记7详细了解了System主类和多线程和…

安卓图形显示系统

Android图形显示系统 Android图形显示系统是Android比较重要的一个子系统,和很多其他子系统的关联紧密。 Android图形系统比较复杂,这里我们从整体上理一遍,细节留待后期再去深入。Android图形系统主要包括以下几个方面: - 渲染…

Shell编程及自动化运维实现

Linux Shell编程及自动化运维实现 变量 Linux Shell编程及自动化运维实现 判断 Linux Shell编程及自动化运维实现 循环 Linux Shell编程及自动化运维实现 数组和函数 Linux Shell编程及自动化运维实现 三剑客 Linux Shell编程及自动化运维实现 综合实战 什么是…

API 接口选择那个?RESTful、GraphQL、gRPC、WebSocket、Webhook

大家好,我是比特桃。目前我们的生活紧紧地被大量互联网服务所包围,互联网上每天都有数百亿次API调用。API 是两个设备相互通讯的一种方式,人们在手机上每次指尖的悦动,背后都是 API 接口的调用。 本文将列举常见的一些 API 接口&…

code论坛系统测试

目录 一 项目介绍**项目名称****项目介绍****项目功能****项目展示** 二 测试用例设计和功能测试1.测试用例设计**①登录页面****②注册页面****③首页****④发布帖子页面****⑤修改个人信息页面** 2.功能测试环境3.实际执行功能测试的部分操作**①登录页面****②注册页面****③…

ps怎么布尔运算多个图层合并?

我们经常使用Photoshop制作大型海报类,也可以用ps进行一些简单icon小图标的制作,这些icon图标多数应用在工具按钮上,比较小巧美观。但是对于ps对图形的操作经常会用到布尔运算的使用,今天小编就给大家详细讲解下ps布尔运算多个图层…

C语言和JavaScript中的默认排序行为对比

前言 今天在js里使用sort时遇见了一个不理解的现象 即使用sort默认排序后 9 从排序前的第一位被排到了最后一位.一开始我对js sort的理解和c一样,然后通过查阅后发现并不是这样. 正文 排序是一项常见而重要的操作。不同的编程语言提供了不同的排序函数&#xf…

常见的网络设备有哪些?分别有什么作用?

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、网络设备的概述 二、常见的网络设备 1、…

华星时空展锐芯片5g随身WiFi改串教程

前段时间入手了一个华正易尚,发现插手机卡可以用,插微闯移植卡直接没网,于是研究出展锐改串的教程分享给大家 ⭐注意:理论上所有的展锐芯片棒子都可以用,至于电池机请自行测试 话不多说,教程开始: 1.下载展锐AT改串驱…

Lnton羚通算法算力云平台如何在OpenCV-Python中使用cvui库创建复选框

CVUI 之 复选框 Python import numpy as np import cv2 import cvuidef checkbox_test():WINDOW_NAME Checkbox-Testchecked [False]# 创建画布frame np.zeros((300, 400, 3), np.uint8)# 初始化窗口cvui.init(WINDOW_NAME)while True:# 画布填色frame[:] (100, 200, 100…

Python学习日志(二)

数据类型转换 num_strstr(11)# 整数转换为字符串 print(type(num_str), num_str) 输出结果为&#xff1a; <class str> 11 类型转换成功&#xff0c;并且原本内容没有发生变化。 float_strstr(13.14)#小数转字符串 print(type(float_str),float_str) 同理&#xff0c;…

变动的Python爬虫实现

在电商时代&#xff0c;了解商品价格的变动对于购物者和卖家来说都非常重要。本文将分享一种基于Python的实时监控电商平台商品价格变动的爬虫实现方法。通过本文的解决方案和代码示例&#xff0c;您将能够轻松监控商品价格&#xff0c;并及时做出决策。 一、了解需求和目标 在…

Python将网络文件下载到本地

Python将网络文件下载到本地 前言相关介绍Python将网络文件下载到本地 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xff0c;可点击进入Python日常小操作专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看基于DETR的人脸伪…

线段树详解——影子宽度

OK&#xff0c;今天来讲一讲线段树~~ 线段树是什么线段树的实现线段树的时间复杂度线段树的应用线段树的节点结构其他操作和优化例题——影子宽度输入输出格式输入格式输出格式 输入输出样例输入样例输出样例 例题讲解 线段树是什么 线段树&#xff08; S e g m e n t Segmen…

数字化时代,数据仓库和商业智能BI系统演进的五个阶段

数字化在逐渐成熟的同时&#xff0c;社会上也对数字化的性质有了进一步认识。当下&#xff0c;数字化除了前边提到的将复杂的信息、知识转化为可以度量的数字、数据&#xff0c;在将其转化为二进制代码&#xff0c;引入计算机内部&#xff0c;建立数据模型&#xff0c;统一进行…
最新文章