React18+Ts项目配置husky、eslint、pretttier、commitLint

前言

我的项目版本如下:

  • React: V18.2.0
  • Node.js: V16.14.0
  • TypeScript:最新版
  • 工具: VsCode

本文将采用图文详解的方式,手把手带你快速完成在React项目中配置husky、prettier、commitLint,实现编码规范的统一,git提交规范的统一。


文章目录

  • 前言
  • 一、使用 eslint
      • 1.1 装包
      • 1.2 ESLint 插件安装
      • 1.3 创建命令并使用
  • 二、使用 prettier
      • 2.1 装包
      • 2.2 创建配置文件
      • 2.3 安装插件
      • 2.3 创建命令并使用
      • 2.4 vscode 配置
      • 2.5 代码风格配置
      • 2.6 重启 vscode
  • 三、将代码提交到 git 仓库
  • 四、使用 husky
      • 4.1 简介
      • 4.2 安装
      • 4.3 编辑package.json >准备脚本并运行一次
      • 4.4 增加钩子函数
  • 五、使用 commitlint
      • 5.1 安装
      • 5.2 配置
      • 5.3 安装 husky
      • 5.4 增加 hook
      • 5.5 测试一下
      • 5.6 正确且优雅的提及
      • 5.7 提交格式
      • 5.8 查看合法的提交前缀
  • 六、授人以渔
      • 6.1 以上步骤如何来的?
      • 6.2 以 husky 为例
  • 七、创作不易,点赞收藏不迷路

一、使用 eslint

1.1 装包

npm install eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin --save-dev

1.2 ESLint 插件安装

在这里插入图片描述


1.3 创建命令并使用

新增命令

"lint": "eslint \"src/**/*.+(js|ts|jsx|tsx)\"",

在这里插入图片描述
执行 npm run lint :
在这里插入图片描述

二、使用 prettier

2.1 装包

npm install prettier eslint-config-prettier eslint-plugin-prettier --save-dev

在这里插入图片描述

2.2 创建配置文件

在根目录中创建 .eslintrc.js 文件,写入如下代码

module.exports = {"env": {"browser": true,"es2021": true},"extends": ["eslint:recommended","plugin:react/recommended","plugin:@typescript-eslint/recommended","plugin:prettier/recommended"],"overrides": [],"parser": "@typescript-eslint/parser","parserOptions": {"ecmaVersion": "latest","sourceType": "module"},"plugins": ["react","@typescript-eslint"],"settings": {"react": {"version": '18.2.0', // 指定你的 React 版本,可以是具体版本号或 "detect" 自动检测},},"rules": {}
}

2.3 安装插件

Prettier - Code formatter

在这里插入图片描述
安装成功后:
在这里插入图片描述

2.3 创建命令并使用

新增命令:表示扫描文件格式,并将文件中的代码修改为正确的格式

"format": " prettier --write \"src/**/*.+(js|ts|jsx|tsx)\"",

在这里插入图片描述
运行命令:
在这里插入图片描述
在这里插入图片描述

2.4 vscode 配置

配置成功后,之前讲的通过 npm run format 可以将双引号格式化为 单引号,现在仅需使用 ctrl + s 保存文件,vscode 即可自行格式化

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

在这里插入图片描述

2.5 代码风格配置

根目录下新建 .prettierrc.js 文件,并写入如下代码:

module.exports = {	// 箭头函数只有一个参数的时候可以忽略括号arrowParens: 'avoid',// 括号内部不要出现空格bracketSpacing: true,// 行结束符endOfLine: 'auto',// 行宽printWidth: 100,// 换行方式proseWrap: 'preserve',// 分号semi: false,// 使用单引号singleQuote: true,// 缩进tabWidth: 2,// 使用tab缩进useTabs: false,// 后置逗号,多行对象、数组在最后一行增加逗号trailingComma: 'es5',parser: 'typescript',
}

2.6 重启 vscode

重启 vscode 后,我们在 .prettierrc.js 文件中配置的代码风格才会生效


三、将代码提交到 git 仓库

如何使用 vscode 将代码推送至 git 仓库👉:http://t.csdnimg.cn/t7YT9


四、使用 husky

4.1 简介

  • 一个 git hook 工具
  • 在 git commit 之前执行自定义的命令
  • 如执行代码风格的检查,避免提交非规范代码

最终实现的是,即使多人协同开发项目,最终提交到远程仓库中的,也是符合规范的、风格统一的代码。

4.2 安装

npm install husky -D

4.3 编辑package.json >准备脚本并运行一次

npm pkg set scripts.prepare="husky install"
npm run prepare

4.4 增加钩子函数

// 表示 git commit 之前执行 npm run lint 
npx husky add .husky/pre-commit "npm run lint"
// 表示 git commit 之前执行 npm run format 
npx husky add .husky/pre-commit "npm run format"
// 表示 git commit 之前执行 npm run git add .
npx husky add .husky/pre-commit "git add ."

在这里插入图片描述
简单测试一下:
在这里插入图片描述


五、使用 commitlint

5.1 安装

windows:

npm install --save-dev @commitlint/config-conventional @commitlint/cli

mac:

npm install --save-dev @commitlint/{config-conventional,cli}

5.2 配置

echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

5.3 安装 husky

注:已安装 husky 的不用重复安装
npm:

npm install husky --save-dev

yarn

yarn add husky --dev

5.4 增加 hook

npx husky add .husky/commit-msg  'npx --no -- commitlint --edit ${1}'

5.5 测试一下

随便写一个提交描述,将无法成功提交
在这里插入图片描述

5.6 正确且优雅的提及

参考 git 上的开源项目 vue-pure-admin
在这里插入图片描述


参考大家熟知的 vue.js :
在这里插入图片描述

5.7 提交格式

前缀 + 冒号 + 一个空格 + 本次提交描述

5.8 查看合法的提交前缀

在这里插入图片描述
在这里插入图片描述


六、授人以渔

6.1 以上步骤如何来的?

或许屏幕前的你,会好奇,为啥我就知道是这些命令,然后这样配置就能成功,其实这些步骤,在 github 上都有写, 而且比你在网上找的博客帖子更加准确。

6.2 以 husky 为例

在这里插入图片描述
在这里插入图片描述


七、创作不易,点赞收藏不迷路

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用sqlmap获取数据步骤

文章目录 1.使用sqlmap获取所有数据库2.使用sqlmap获取当前连接数据库3.使用sqlmap获取当前数据库下所有表名4.使用sqlmap获取当前数据库下某个表下所有列名5.使用sqlmap获取当前数据库下某个表下指定字段的数据6.测试当前用户是否是管理员7.使用burpsqlmap批量检测8.脱库命令9…

算法竞赛备赛之贪心算法训练提升,贪心算法基础掌握

1.区间问题 905.区间选点 给定N个闭区间[ai, bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量,位于区间端点上的点也算作是区间内。 将每个按区间的右端点从小到大排序 从前往后依次枚举每…

记录:Unity脚本的编写

目录 前言添加脚本到unity编写c#脚本查看效果 前言 在学习软件构造这门课的时候,对unity和c#进行了 一定程度的学习,包括简单的建立地形,添加对象,添加材质等,前不久刚好学习了如何通过c#脚本对模型进行操控&#xff…

五、2023.10.1.C++stl.5

文章目录 65、请说说 STL 的基本组成部分?66、请说说 STL 中常见的容器,并介绍一下实现原理?67、请说说 STL 中常见的容器,并介绍一下实现原理?68、请你来介绍一下 STL 的空间配置器(allocator)&#xff1…

分布式并行训练(DP、DDP、DeepSpeed)

[pytorch distributed] 01 nn.DataParallel 数据并行初步 数据并行 vs. 模型并行 数据并行:模型拷贝(per device),数据 split/chunk(对batch切分) 每个device上都拷贝一份完整模型,每个device分…

密码技术 (5) - 数字签名

一. 前言 前面在介绍消息认证码时,我们知道消息认证码虽然可以确认消息的完整性,但是无法防止否认问题。而数字签名可以解决否认的问题,接下来介绍数字签名的原理。 二. 数字签名的原理 数字签名和公钥密码一样,也有公钥和私钥&am…

字符串函数(一)

✨博客主页:小钱编程成长记 🎈博客专栏:进阶C语言 字符串函数(一) 0.前言1.求字符串长度的函数1.1 strlen(字符串长度) 2.长度不受限制的字符串函数2.1 strcpy(字符串拷贝&#xff0…

直播协议 python 常见直播协议

1. 推流、直播 和 点播分别是什么意思? 推流 主播将本地视频源和音频源推送到云服务器,也被称为“RTMP发布”。 直播 即直接观看主播实时推送过来的音视频数据。 点播 视频源已经事先存储于云服务器之上的音视频文件,观众随时可以观看。 目…

怒刷LeetCode的第22天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:回溯算法 方法二:基于位运算的回溯 第二题 题目来源 题目内容 解决方法 方法一:动态规划 方法二:分治法 方法三:前缀和数组 第三题 题目来源 题目内容…

Acwing 842. 排列数字

Acwing 842. 排列数字 知识点题目描述思路讲解代码展示 知识点 DFS 题目描述 思路讲解 DFS重点是:顺序!(暴力的手法)(递归) 用 path 数组保存排列,当排列的长度为 n 时,是一种方…

【Leetcode】 17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits "23" 输出&…

Java笔记五(数组)

目录 数组 数组声明创建 数组初始化的三种初始化类型: 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 数组边界 数组的使用 示例一:计算所有的元素和以及查找最大元素 示例二:For-Each循环 示例三:数组作…

Ubuntu 安装 Docker 的详细步骤

文章目录 简介1.更新2.安装必要的软件包2.1 基于阿里源 3.验证 Docker 安装是否成功4.安装后的一些常规设置及常用的命令4.1 启动 Docker4.2 Docker 在系统启动时自动运行4.3 运行一个 Hello World 镜像4.4 查看docker运行状态 欢迎来到这篇关于在 Ubuntu 上安装 Docker 的教程…

鞋类 整鞋试验方法 剥离强度

声明 本文是学习GB-T 3903.3-2011 鞋类 整鞋试验方法 剥离强度. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 GB/T 3903 的本部分规定了整鞋鞋底与鞋帮或外底与外中底之间剥离强度的试验方法。 本部分适用于采用模压、硫化、注塑、灌注、胶…

【c++随笔07】常量、变量、static

【c随笔07】常量、变量、static 1、常量、变量1.1、声明变量1.2、使用常量 2、static介绍2.1、static 局部变量2.2、static 全局变量2.3、C static静态成员变量2.4、C static静态成员函数详解 原创地址,https://zhengjunxue.blog.csdn.net/article/details/13167770…

【数据结构】——顺序表详解

大家好!当我们学习了动态内存管理后,就可以写一个管理数据的顺序表了!!! 顺序表的理解: 线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种…

02-Zookeeper实战

上一篇:01-Zookeeper特性与节点数据类型详解 1. zookeeper安装 Step1: 配置JAVA环境,检验环境: java -versionStep2: 下载解压 zookeeper wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeepe…

响应式设计的实现方式

一. 什么是响应式 响应式网站设计是一种网络页面设计布局。页面的设计与开发应当根据用户行为以及设备环境(系统平台,屏幕尺寸,屏幕定向等)进行相应的响应和调整。 响应式网站常见特点: 1. 同时适配PC平板手机。 2…

Win10自带输入法怎么删除-Win10卸载微软输入法的方法

Win10自带输入法怎么删除?Win10系统自带输入法就是微软输入法,这个输入法满足了很多用户的输入需求。但是,有些用户想要使用其它的输入法,这时候就想删除掉微软输入法。下面小编给大家介绍最简单方便的卸载方法吧。 Win10卸载微软…

Hive【Hive(三)查询语句】

前言 今天是中秋节,早上七点就醒了,干啥呢,大一开学后空教室紧缺,还不趁着假期来学校等啥呢。顺便偷偷许个愿吧,希望在明年的这个时候,秋招不知道赶不赶得上,我希望拿几个国奖,蓝桥杯…