05vue3实战-----配置项目代码规范

05vue3实战-----配置项目代码规范

  • 1.集成editorconfig配置
  • 2.使用prettier工具
    • 2.1安装prettier
    • 2.2配置.prettierrc文件:
    • 2.3创建.prettierignore忽略文件
    • 2.4VSCode需要安装prettier的插件
    • 2.5VSCod中的配置
    • 2.6测试prettier是否生效
  • 3.使用ESLint检测
    • 3.1VSCode需要安装ESLint插件
    • 3.2解决eslint和prettier冲突的问题:
    • 3.3测试
  • 4.git相关的代码规范

1.集成editorconfig配置

EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。
新建.editorconfig文件,写入配置内容。具体的配置语法可以看https://editorconfig.org/。

# http://editorconfig.org

root = true

[*] # 表示所有文件适用
charset = utf-8 # 设置文件字符集为 utf-8
indent_style = space # 缩进风格(tab | space)
indent_size = 2 # 缩进大小
end_of_line = lf # 控制换行类型(lf | cr | crlf)
trim_trailing_whitespace = true # 去除行尾的任意空白字符
insert_final_newline = true # 始终在文件末尾插入一个新行

[*.md] # 表示仅 md 文件适用以下规则
max_line_length = off
trim_trailing_whitespace = false

注意,VSCode需要安装一个插件—EditorConfig for VS Code,上述配置的内容才能生效。
在这里插入图片描述

2.使用prettier工具

Prettier是一款强大的代码格式化工具,支持 JavaScript、TypeScript、CSS、SCSS、Less、JSX、Angular、Vue、GraphQL、JSON、Markdown 等语言,基本上前端能用到的文件格式它都可以搞定,是当下最流行的代码格式化工具。

2.1安装prettier

npm install prettier -D

2.2配置.prettierrc文件:

  • useTabs:使用tab缩进还是空格缩进,选择false;
  • tabWidth:tab是空格的情况下,是几个空格,选择2个;
  • printWidth:当行字符的长度,推荐80,也有人喜欢100或者120;
  • singleQuote:使用单引号还是双引号,选择true,使用单引号;
  • trailingComma:在多行输入的尾逗号是否添加,设置为 none,比如对象类型的最后一个属性后面是否加一个,;
  • semi:语句末尾是否要加分号,默认值true,选择false表示不加;
  {
  "useTabs": false,
  "tabWidth": 2,
  "printWidth": 80,
  "singleQuote": true,
  "trailingComma": "none",
  "semi": false
}

2.3创建.prettierignore忽略文件

/dist/*
.local
.output.js
/node_modules/**

**/*.svg
**/*.sh

/public/*

这时候直接ctrl+S进行保存,会发现格式不对的代码并没有像.prettierrc文件中要求的那样子自动格式化。这是因为没有安装关于prettier的插件。

2.4VSCode需要安装prettier的插件

在这里插入图片描述
还是直接ctrl+S进行保存,还是不行。这是因为需要对vscode相应的配置。

2.5VSCod中的配置

  • 文件=>首选项=>设置=>format on save=> 勾选上
    在这里插入图片描述
  • 文件=>首选项=>设置=> editor default format=> 选择 prettier
    在这里插入图片描述
    此时,ctrl+S进行保存,会自动格式化。

2.6测试prettier是否生效

  • 方法一:在代码中保存代码;
  • 方法二:配置一次性修改的命令;
    在package.json中配置一个scripts:
 "prettier": "prettier --write ."

3.使用ESLint检测

在前面创建项目的时候,我们就选择了ESLint,所以Vue会默认帮助我们配置需要的ESLint环境。

3.1VSCode需要安装ESLint插件

在这里插入图片描述

3.2解决eslint和prettier冲突的问题:

比如eslint中配置的是使用单引号,而prettier使用的是双引号。这时候就会发生冲突。
我们解决的方法如下:
安装插件:(通过命令行创建项目时,如果选择使用prettier,那么这两个插件会自动安装)

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

之前初始化的.eslintrc.cjs文件如下:

/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')
module.exports = {
  root: true,
  extends: [
    'plugin:vue/vue3-essential',
    'eslint:recommended',
    '@vue/eslint-config-typescript',
    '@vue/eslint-config-prettier',
  ],
  parserOptions: {
    ecmaVersion: 'latest'
  },
}

需要在该文件中的extends中追加一项,如下:

extends: [
    "plugin:vue/vue3-essential",
    "eslint:recommended",
    "@vue/typescript/recommended",
    "@vue/prettier",
    "@vue/prettier/@typescript-eslint",
    'plugin:prettier/recommended'//追加的
  ],

这样子之后,当.eslintrc.cjs中的某个配置和.prettierrc.json文件中的配置冲突,则该配置项就以.prettierrc.json文件为准(这样子就不会发生冲突)

3.3测试

在main.ts追加一下代码,会爆红,提示是用了双引号。说明eslint配置成功。
在这里插入图片描述
按ctrl+S会自动调整:
在这里插入图片描述
但obj上会有黄色波浪线,这是一种警告提示。鼠标悬浮,有如下显示:

'obj' is assigned a value but never used.eslint@typescript-eslint/no-unused-vars

大致意思是这个obj在之后没有被用过。若想要这种情况下不出现黄色警告,就要在.eslintrc.cjs文件中配置来取消该提示。可以追加rules:

rules: {
    '@typescript-eslint/no-unused-vars': 'off'
 }

在这里插入图片描述
这样子就不会有警告了:
在这里插入图片描述

rules中还可以配置很多其它的规则,这里只是一个例子。

4.git相关的代码规范

我将在后续文章中专门讲述git Husky和git commit规范。

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

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

相关文章

【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)

偏差和方差的权衡(Bias-Variance Tradeoff) 1. 引言 在机器学习模型的训练过程中,我们常常面临一个重要的挑战:如何平衡 偏差(Bias) 和 方差(Variance),以提升模型的泛…

23.PPT:校摄影社团-摄影比赛作品【5】

目录 NO12345​ NO6 NO7/8/9/10​ 单元格背景填充表格背景填充文本框背景填充幻灯片背景格式设置添加考生文件夹下的版式 NO12345 插入幻灯片和放入图片☞快速:插入→相册→新建相册→文件→图片版式→相框形状→调整边框宽度左下角背景图片:视图→…

OpenCV:图像修复

目录 简述 1. 原理说明 1.1 Navier-Stokes方法(INPAINT_NS) 1.2 快速行进方法(INPAINT_TELEA) 2. 实现步骤 2.1 输入图像和掩膜(Mask) 2.2 调用cv2.inpaint()函数 2.3 完整代码示例 2.4 运行结果 …

快速建立私有化知识库(私有化训练DeepSeek,通过ollama方式)

简介 什么?!老是有人问你需求,不同版本的需求你记不清还得去扒拉过程文档、设计文档? 什么?!领导会询问功能使用情况、用户相关数据,你每次还得手动查询反馈? 什么?&…

python脚本实现windows电脑内存监控内存清理(类似rammap清空工作集功能)

import ctypes import psutil import time import sys import os from datetime import datetime import pyautogui# 检查管理员权限 def is_admin():try:return ctypes.windll.shell32.IsUserAnAdmin()except:return False# 内存清理核心功能 def cleanup_memory(aggressivene…

网络安全:挑战、技术与未来发展

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 在数字化时代,网络安全已成为全球关注的焦点。随着互联网的普及和信息技术的高速发展,网络攻击的…

Verilog语言学习总结

Verilog语言学习! 目录 文章目录 前言 一、Verilog语言是什么? 1.1 Verilog简介 1.2 Verilog 和 C 的区别 1.3 Verilog 学习 二、Verilog基础知识 2.1 Verilog 的逻辑值 2.2 数字进制 2.3 Verilog标识符 2.4 Verilog 的数据类型 2.4.1 寄存器类型 2.4.2 …

35.Word:公积金管理中心文员小谢【37】

目录 Word1.docx ​ Word2.docx Word2.docx ​ 注意本套题还是与上一套存在不同之处 Word1.docx 布局样式的应用设计页眉页脚位置在水平/垂直方向上均相对于外边距居中排列:格式→大小对话框→位置→水平/垂直 按下表所列要求将原文中的手动纯文本编号分别替换…

Python----Python高级(并发编程:协程Coroutines,事件循环,Task对象,协程间通信,协程同步,将协程分布到线程池/进程池中)

一、协程 1.1、协程 协程,Coroutines,也叫作纤程(Fiber) 协程,全称是“协同程序”,用来实现任务协作。是一种在线程中,比线程更加轻量级的存在,由程序员自己写程序来管理。 当出现IO阻塞时,…

amis组件crud使用踩坑

crud注意 过滤条件参数同步地址栏 默认 CRUD 会将过滤条件参数同步至浏览器地址栏中,比如搜索条件、当前页数,这也做的目的是刷新页面的时候还能进入之前的分页。 但也会导致地址栏中的参数数据合并到顶层的数据链中,例如:自动…

机器学习8-卷积和卷积核1

机器学习8-卷积和卷积核1 卷积与图像去噪卷积的定义与性质定义性质卷积的原理卷积步骤卷积的示例与应用卷积的优缺点优点缺点 总结 高斯卷积核卷积核尺寸的设置依据任务类型考虑数据特性实验与调优 高斯函数标准差的设置依据平滑需求结合卷积核尺寸实际应用场景 总结 图像噪声与…

Dubbo 3.x源码(29)—Dubbo Consumer服务调用源码(1)服务调用入口

基于Dubbo 3.1,详细介绍了Dubbo Consumer服务调用源码。 此前我们学习了Dubbo服务的导出和引入的源码,现在我们来学习Dubbo服务调用的源码。 此前的文章中我们讲过了最上层代理的调用逻辑(服务引用bean的获取以及懒加载原理):业务引入的接口…

【信息系统项目管理师-案例真题】2016下半年案例分析答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题1】4 分【问题2】12 分【问题3】3 分【问题4】6 分试题二【问题1】3 分【问题2】4 分【问题3】8 分【问题4】5 分【问题5】5 分试题三【问题1】4 分【问题2】8 分【问题3】5 分【问题4】8 分试题一…

pytest-xdist 进行多进程并发测试!

在软件开发过程中,测试是确保代码质量和可靠性的关键步骤。随着项目规模的扩大和复杂性的增加,测试用例的执行效率变得尤为重要。为了加速测试过程,特别是对于一些可以并行执行的测试用 例,pytest-xdist 提供了一种强大的工具&…

【R语言】数据分析

一、描述性统计量 借助R语言内置的airquality数据集进行简单地演示: 1、集中趋势:均值和中位数 head(airquality) # 求集中趋势 mean(airquality$Ozone, na.rmT) # 求均值 median(airquality$Ozone, na.rmT) # 求中位数 2、众数 众数(mod…

kafka服务端之日志存储

文章目录 日志布局日志索引日志清理日志删除基于时间基千日志大小基于日志起始偏移量 日志压缩总结 日志布局 Ka饮a 中的消息是以主题为基本单位进行归类的, 各个主题在逻辑 上相互独立。 每个主题又可以分为一个或多个分区, 分区的数量可以在主题创建的…

家用报警器的UML 设计及其在C++和VxWorks 上的实现01

M.W.Richardson 著,liuweiw 译 论文描述了如何运用 UML(统一建模语言)设计一个简单的家用报警器,并实现到 VxWorks 操作系统上。本文分两个部分,第一部分描述了如何用 UML 设计和验证家用报警器的模型,以使…

数据结构与算法-链表

单向链表(带哨兵) public class SinglyLinkedList {private Node head new Node(Integer.MIN_VALUE, null); // 定义一个哨兵节点作为头部节点,避免对头节点进行特殊处理// 节点类,包含值和指向下一个节点的引用private static …

剪辑学习整理

文章目录 1. 剪辑介绍 1. 剪辑介绍 剪辑可以干什么?剪辑分为哪些种类? https://www.bilibili.com/video/BV15r421p7aF/?spm_id_from333.337.search-card.all.click&vd_source5534adbd427e3b01c725714cd93961af 学完剪辑之后如何找工作or兼职&#…

自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同

目录 1、引言 2、主要内容 2.1、定位对比:感知与规划的全维覆盖 2.2、数据与技术特性对比 2.3、技术协同:构建全栈研发生态 2.4、应用场景与评估体系 2.5、总结与展望 3、参考文献 1、引言 随着自动驾驶技术向全栈化迈进,Motional 团…