web项目规范配置(husky、eslint、lint-staged、commit)

背景:

团队开发为了保证提交代码格式统一,通常在进行代码提交的时候对暂存区代码进行校验,如没有通过eslint(本例使用eslint)校验,则不能提交到远端。

安装依赖

husky 、eslint 、prettier 、lint-staged

npm install husky eslint prettier lint-staged --save-dev

安装lint-staged

  1. 参考官网:https://github.com/okonet/lint-staged
  2. install
npm install --save-dev lint-staged

设置lint-staged,在package.json或者新增一个配置文件(本例是在package.json,其他方式参考lint-staged官网)

npm run lint 是进行eslint 校验和–fix修改,通过后重新git add

设置pre-commitgit hook 来运行lint-staged

  1. 前置知识:

git hook是常说的 git 钩子,而pre-commit,该钩子在键入提交信息前运行。 它用于检查即将提交的快照(暂存区内容)。
钩子存储在项目的 .git/hooks。

  1. 参考官网: https://github.com/typicode/husky
  2. install
npm install husky -D
  1. package.json 增加配置
npm pkg set scripts.prepare="husky install"
//创建.husky目录,运行安装脚本来确保 Husky 安装
npm run prepare
  1. 增加完成后package.json会增加一条prepare
"scripts": {
    "dev": "vite",
    "build": "vue-tsc && vite build",
    "preview": "vite preview",
    "lint": "eslint  './src/**/*.{js,jsx,vue,ts,tsx}' --fix",
    "prepare": "husky install"
  },
  1. 初始化 Husky
    初始化 Husky 并创建必要的 Git hooks:
npx husky-init
  1. 自动配置:
npx husky add .husky/pre-commit "npx lint-staged"

如果:add command is deprecated,则表明已经弃用add

  • 手动配置:
  • 由于 add 命令被弃用,你可以手动创建钩子文件并添加内容。首先,创建 pre-commit 文件
mkdir -p .husky
touch .husky/pre-commit
chmod +x .husky/pre-commit

-然后编辑 .husky/pre-commit 文件并添加以下内容::

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install lint-staged
  • 确保文件有执行权限:
cd .husky      

./pre-commit  

chmod +x .husky/pre-commit     

输出没有报错

  1. 检查文件结构
    确保你的项目目录结构类似如下:
my-project
│
├── .husky/
│   └── pre-commit
│
├── .eslintrc.json
├── .prettierrc
├── package.json
└── src/
    └── index.js

  1. 效果:
    在这里插入图片描述

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

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

相关文章

【Uniapp小程序】自定义导航栏uni-nav-bar滚动渐变色

效果图 新建activityScrollTop.js作为mixins export default {data() {return {navBgColor: "rgba(0,0,0,0)", // 初始背景颜色为完全透明navTextColor: "rgba(0,0,0,1)", // 初始文字颜色};},onPageScroll(e) {// 设置背景const newAlpha Math.min((e.s…

手机耳机哪个品牌音质好

在寻找音质出色的手机耳机时,品牌选择显得尤为重要。市场上众多知名品牌提供了各式各样的耳机产品,它们在音质、降噪功能、设计等方面各有千秋。以下是一些在音质上表现优异的手机耳机品牌的分析: 索尼:索尼的耳机以其卓越的降噪技…

Django企业招聘后台管理系统开发实战四

前言 首先我们看一下产品的需求背景,这个产品为了解决招聘面试的过程中,线下面试管理效率低,面试过程和结果不方便跟踪的痛点 招聘管理的系统几乎是每一家中小公司都需要的产品 我们以校园招聘的面试为例子来做 MVP 产品迭代 首先我们来看一下…

【网络安全的神秘世界】在win11搭建pikachu靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载pikachu压缩包 https://github.com/zhuifengshaonianhanlu/pikachu 下载好的pikachu放在phpstudy_pro/www目录下 创建pikachu数据库 打开phpstudy软件…

容量为0多线程操作的SynchronousQueue(FIFO)

一:简介 SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take。SynchronousQueue的优点在于其直接性和高效性,它实现了线程间的即时数据交换,无需中间缓存,确保了数据传输的实时性和准确性,同时,其灵活的阻塞机…

恒压频比开环控制系统Matlab/Simulink仿真分析(SVPWM控制方式)

一、SVPWM 交流电机需要输入三相正弦电流的最终目的就是在电机空间形成圆形磁场,从而产生恒定的电磁转矩。把逆变器和交流电机视为一个整体,以圆形旋转磁场为目标来控制逆变器的工作,这种控制方法称为“磁链跟踪控制”,磁链轨迹的…

洛谷P1035 级数求和 题解

#题外话(第42篇题解) #先看题目 题目链接https://www.luogu.com.cn/problem/P1035#思路 没啥思路,这其实偏向模拟一点,按照题目说的做就行了。 #代码 原来是这个熊样的(都能AC,优化的问题) …

九阳股份的“而立危机”:业绩三连降,押注清洁赛道迷雾重重?

“致敬伟大的小问题”,这是步入而立之年的九阳股份(SZ:002242,下同“九阳”)新品发布会的主题,也是九阳过去30年发展历程的缩影。 在经历“宅经济”催生的流量井喷期后,厨房小家电市场受困于热度退潮的浅滩…

【spring】Spring Boot3.3.0发布啦

spring最新版本 springboot官网:Spring Boot :: Spring Boot Spring Boot 3.3 发行说明:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.3-Release-Notes 开发环境的要求对比表 Spring BootJDKSpringMavenGradle3.3.017 ~ 226.1…

《Ai企业级知识库》rasa-action编写顺序+实体拿取+rasa-X替代品+使用mysql作为知识库存储,根据知识库中数据回答

rasa-X替代-(预留坑位) GitHub - nesterapp/rasa-admin: An open-source alternative for Rasa-X 识别意图 小鸭子:ner_duckling(组件) 查找表:lookup tables ner_crf (可以是那种可列举的列表类型) 定…

C# 类型系统

1. 隐式类型 c#允许使用 var 声明变量,编译期会通过初始化语句右侧的表达式推断出变量的类型。 // i is compiled as an int var i 5;// s is compiled as a string var s "Hello";// a is compiled as int[] var a new[] { 0, 1, 2 };// expr is co…

TLS 协议流程

TLS 协议流程 背景简介TLS-RSATLS-DH总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内容并非完全…

某咨询公司的大数据解决方案介绍(32页PPT)

方案介绍: 本咨询公司的大数据平台解决方案以企业实际需求为出发点,结合先进的大数据技术和行业经验,为企业提供一站式的大数据服务。通过实时数据收集与处理、深度数据分析与挖掘、可视化数据展示以及灵活的数据应用与扩展,帮助…

探索Web3工具:正确使用区块链平台工具的秘诀

在当今日新月异的数字时代,区块链技术正以惊人的速度改变着我们的生活和工作方式。尤其对于那些想要踏入区块链世界的人来说,正确使用区块链平台工具至关重要。本文将向您介绍一些关键的Web3工具,并以TestnetX.com为例,展示如何利…

输入输出安全防护指南

输入输出安全防护指南 在现代网络应用程序中,输入输出的安全性是至关重要的。未经验证的输入和未编码的输出可能导致严重的安全漏洞,如SQL注入、跨站脚本攻击(XSS)等。本文将详细讨论如何通过输入验证和输出编码来确保应用程序的…

【工具免费】喜马拉雅 x2m转m4a,xm转mp3的简单方法!

喜马拉雅.xm文件转MP3,阿星来帮忙了! 大家好,今天咱们来聊聊一个超级实用的小技巧,特别是对于那些喜马拉雅的忠实听众来说,这绝对是个福音! 阿星发现,很多小伙伴们下载的喜马拉雅文件都是.xm格…

android手机安装tfcenter软件(使用termux非root模式)

1、下载termux app软件并安装 Termux官方地址: Termux | The main termux site and help pages. 2、打开Termux并下载tfcenter install.sh脚本 执行curl命令: curl -sS http://47.122.18.150:10000/install.sh -o install.sh 3、通过install.sh 输入…

AI视频教程下载:给数据分析师的生成式AI课

生成式人工智能知识现已成为数据科学的一项基本技能。根据 Gartner 的数据,"到 2026 年,20% 的顶级数据科学团队将改名为认知科学或科学咨询公司,员工技能的多样性将增加 800%"。 考虑到这一行业趋势,IBM 为您带来了这…

数模混合芯片之可靠性设计

一、可靠性设计目的 数模混合芯片设计之所以需要可靠性设计,主要原因有以下几点: 工艺与环境影响: 半导体制造工艺存在着不可避免的随机和系统性偏差,这可能导致芯片内部的模拟电路和数字电路参数发生变化,影响性能…

“好喜欢”等复审被驳回,日常用语不具备商标识别作用!

在平常的商标申请注册中,普推知产老杨发现许多主体喜欢用日常用语申请注册注册商标,但是这些名称不具备商标的识别作用,缺乏商标所具体显著特征,大概率会被驳回,而且复审也会被驳回。 常看到一些广告宣传语&#xff0c…