husky的简介以及如果想要放飞自我的解决方案
husky
是一个 Git Hooks 管理工具,它的主要作用是 在 Git 提交(commit)、推送(push)等操作时执行自定义脚本,比如代码检查(Lint)、单元测试(Test)、格式化代码(Prettier)等。
📌 husky
的作用
- 强制代码规范:在
pre-commit
钩子执行eslint
,确保提交的代码符合规范。 - 自动格式化代码:结合
prettier
在pre-commit
里自动格式化代码,避免手动修改格式。 - 防止提交 Bug:在
pre-push
执行单元测试 (npm test
),如果测试未通过,禁止推送。 - 自动执行脚本:可以用 Git 钩子自动运行
build
、deploy
、update
等脚本。
🎯 husky
的常见 Git Hooks
Git Hook | 触发时机 | 作用 |
---|---|---|
pre-commit | git commit 之前 | 运行 eslint 、prettier 、检查代码 |
commit-msg | git commit 之后 | 规范化提交信息(如 feat: xxx ) |
pre-push | git push 之前 | 运行 npm test ,防止推送有 Bug 的代码 |
pre-rebase | git rebase 之前 | 确保变基不会出错 |
post-merge | git pull 之后 | 自动安装依赖 npm install |
✅ husky
的使用
1️⃣ 安装 husky
npx husky-init && npm install
或者手动安装:
npm install husky --save-dev
然后启用 Git Hooks:
npx husky install
2️⃣ 添加 pre-commit
钩子
npx husky add .husky/pre-commit "npm run lint"
这样,每次 git commit
时,都会执行 npm run lint
进行代码检查。
3️⃣ 添加 pre-push
钩子
npx husky add .husky/pre-push "npm test"
这样,每次 git push
时,都会执行 npm test
运行单元测试,如果测试失败,推送会被阻止。
📢 什么时候应该用 husky
?
✅ 适合团队合作、多人开发,强制代码规范。
✅ 适合大型项目,避免提交低质量代码。
❌ 如果是个人项目,且没有严格代码规范,可以不装 husky
。
🚀 如果想要移除husky
有些个人开发者不需要很强的代码规范,新接手一些轮子的时候可能会遇到 git commit
报错,是因为 husky
在 pre-commit
阶段执行 npm test
,但你的 package.json
里 没有 test
脚本,导致错误。
解决方案:
假设 husky 是你项目中的一个依赖包,你可以通过以下步骤使用 Yarn 将其移除:
- 在项目根目录下运行以下命令:
yarn remove husky
- 这会同时:
- 从 package.json 中删除 husky 的依赖记录
- 删除 node_modules 中相关的 husky 文件
- 如果你之前配置了 husky 的钩子(hooks),你可能还需要:
- 检查 .git/hooks 目录,删除相关的钩子文件
- 或者直接删除 .husky 目录(如果存在)
示例完整操作:
# 移除 husky 包
yarn remove husky# 如果需要,删除 husky 配置目录
rm -r -fo .husky
完成后,你可以用以下命令验证 husky 是否已移除:
yarn list --pattern husky
如果返回空结果,说明 husky 已成功移除。
或者
npm uninstall husky
rm -rf .husky
然后重新提交代码。
你可以看看 husky
的 pre-commit
里到底执行了什么:
cat .husky/pre-commit
相关文章:
husky的简介以及如果想要放飞自我的解决方案
husky 是一个 Git Hooks 管理工具,它的主要作用是 在 Git 提交(commit)、推送(push)等操作时执行自定义脚本,比如代码检查(Lint)、单元测试(Test)、格式化代码…...
Maven工具学习使用(四)——仓库
仓库分类 对于Mavne来说,仓库只分为两类:本地仓库和远程仓库。当Maven根据坐标查询寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven就会去远程仓库查找,发现需要的构件之后…...
【BFS】《单源、多源 BFS:图搜索算法的双生力量》
文章目录 前言单源BFS例题一、迷宫中离入口最近的出口二、 最小基因变化三、单词接龙四、为高尔夫比赛砍树 多源BFS例题一、 01 矩阵二、飞地的数量三、地图中的最高点四、地图分析 结语 前言 什么是单源、多源BFS算法问题呢? BFS(Breadth - First Sear…...
批量取消 PDF 文档中的所有超链接
在 PDF 文档中我们可以插入各种各样的文本也可以给文本设置字体,颜色等多种样式,同时还可以给文字或者图片添加上超链接,当我们点击超链接之后,就会跳转到对应的网页。有时候这会对我们的阅读或者使用形成一定的干扰,今…...
13.2 kubelet containerRuntime接口定义和初始化
本节重点总结 : containerRuntime 需要实现3类接口 管理容器的接口管理镜像的接口Streaming API 用于客户端与容器进行交互 type KubeGenericRuntime interface {kubecontainer.Runtimekubecontainer.StreamingRuntimekubecontainer.CommandRunner }containerRun…...
使用 gone.WrapFunctionProvider 快速接入第三方服务
项目地址:https://github.com/gone-io/gone 本文中源代码: esexamples/es 文章目录 1. gone.WrapFunctionProvider 简介2. 配置注入实现3. 实战示例:Elasticsearch 集成4. 使用方式5. 最佳实践6. 总结 在如何给Gone框架编写Goner组件…...
git 标签学习笔记
目录 轻量级标签 带注释的标签(推荐) 给指定 commit 打标签 推送单个标签,需要单独推送,代码推送不会推送标签 推送所有标签 删除标签 轻量级标签 git tag v1.0.0 只是简单地给当前 commit 打上 v1.0.0 标签。 带注释的标…...
【论文阅读】基于思维链提示的大语言模型软件漏洞发现与修复方法研究
这篇文章来自于 Chain-of-Thought Prompting of Large Language Models for Discovering and Fixing Software Vulnerabilities 摘要 软件安全漏洞在现代系统中呈现泛在化趋势,其引发的社会影响日益显著。尽管已有多种防御技术被提出,基于深度学习&…...
企业在人工智能创新与安全之间走钢丝
2025 年全球 AI/ML 工具使用量将激增,企业将 AI 融入运营之中,员工也将 AI 嵌入日常工作流程中。报告显示,企业对 AI/ML 工具的使用同比增长 3,000% 以上,凸显了各行各业迅速采用 AI 技术,以提升生产力、效率和创新水平…...
CSS动画
目录 一、核心概念与语法 1. keyframes 关键帧 2. animation 属性 二、动画调速函数(animation-timing-function) 1. 预设值 2. 贝塞尔曲线 3. 步进函数(steps()) 三、动画控制与交互 1. 暂停与恢复 2. JavaScript 控制…...
计算机视觉(CV)技术的优势和挑战
计算机视觉(CV)技术是人工智能领域中的一个重要分支,它主要通过让机器学会“看”和“理解”图像或视频来模拟人类视觉系统。以下是计算机视觉技术的一些优势和挑战: 优势: 自动化:计算机视觉技术可以实现…...
动态IP与静态IP该如何选?
一、当IP地址成为"网络身份" 2023年亚马逊封号潮中,某杭州卖家因登录IP频繁切换(早8点在纽约,午间瞬移到东京),触发平台风控导致账号冻结。这类"时空错乱症"揭示了跨境电商的生存法则:…...
Vue.js 完全指南:从入门到精通
1. Vue.js 简介 1.1 什么是 Vue.js? Vue.js(通常简称为 Vue)是一个用于构建用户界面的渐进式 JavaScript 框架。所谓"渐进式",意味着 Vue 的设计是由浅入深的,你可以根据自己的需求选择使用它的一部分或全部功能。 Vue 最初由尤雨溪(Evan You)在 2014 年创…...
《TypeScript 7天速成系列》第3天:TypeScript高级类型通关秘籍:泛型+联合+交叉类型实战
TypeScript 的类型系统是其最强大的特性之一,但也是许多开发者感到困惑的地方。今天我们就来破解 TypeScript 中最难的类型系统,掌握泛型、联合类型和交叉类型的使用技巧。 一、泛型函数与泛型接口 泛型是 TypeScript 中创建可重用组件的重要工具&…...
Python----数据分析(足球运动员数据分析)
一、数据展示 1.1、数据 1.2、列名 字段名备注Name姓名Nationality国籍National_Position国家队位置National_Kit国家队号码Club所在俱乐部Club_Position所在俱乐部位置Club_Kit俱乐部号码Club_Joining加入俱乐部时间Contract_Expiry合同到期时间Rating评分Height身高Weight体…...
音视频 三 看书的笔记 MediaPlayer的C/S架构
MediaPlayer在运行时分为Client和Server两部分 Client层:位于Java层,用户通过调用Java层的API(如setDataSource)来操作MediaPlayer。 Server层:位于C层,负责实际的媒体处理工作。Server层通过Binder机…...
Elasticsearch:使用 AI SDK 和 Elastic 构建 AI 代理
作者:来自 Elastic Carly Richmond 你是否经常听到 AI 代理(AI agents)这个词,但不太确定它们是什么,或者如何在 TypeScript(或 JavaScript)中构建一个?跟我一起深入了解 AI 代理的概…...
echarts添加坐标轴点击事件
echarts添加坐标轴点击事件 chart.on(click, (params) > {if(params.componentType yAxis && this.type ! 1){console.log(params);// 检查是否点击了系列数据console.log(你点击了 ${params.name} 的数据点,值为 ${params.value}); this.$bus.$emi…...
如何在linux中部署dns服务 主备dns (详细全过程)
环境centos 7.9 主DNS:192.168.60.131 备DNS:192.168.60.134 我以 chenxingyu0.com 指向 192.168.60.200为例 首先是主dns #!/bin/bash# 检查是否为 root 用户 if [ "$(id -u)" ! "0" ]; thenecho "请使用…...
GitLab 中文版17.10正式发布,27项重点功能解读【二】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
matplotlib——南丁格尔玫瑰
南丁格尔玫瑰图(Nightingale Rose Chart),是一种特殊形式的柱状图,它以南丁格尔(Florence Nightingale)命名,她在1858年首次使用这种图表来展示战争期间士兵死亡原因的数据。 它将数据绘制在极坐…...
WPF 与 C# 融合开发:从基础到高级应用(一)
WPF 与 C# 融合开发:从基础到高级应用 一、C# 语言基础回顾 1.1 C# 语言概述 C# 是微软开发的一种现代、面向对象的编程语言,它融合了 C、C 和 Java 等语言的优点,具有简洁、安全、高效等特点。C# 广泛应用于 Windows 平台的应用开发&…...
ref和reactive区别
在 Vue 3 中,ref 和 reactive 是两种创建响应式数据的主要 API,但它们的适用场景和使用方式有所不同。以下是它们的核心区别和示例: 一、核心区别 特性refreactive适用数据类型所有类型(基本类型、对象、数组)仅对象或…...
精选10个好用的WordPress免费主题
10个好用的WordPress免费主题 1. Astra Astra 是全球最受欢迎的 WordPress 主题。它功能丰富,易于使用,SEO友好,是第一个安装量突破100万的非默认主题,并获得了5000多个五星好评。 它完美集成了Elementor、Beaver,古…...
DerpNStink: 1靶场渗透
DerpNStink: 1 来自 <DerpNStink: 1 ~ VulnHub> 1,将两台虚拟机网络连接都改为NAT模式 2,攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182,靶场IP192.168.23.213 3,对靶机进行端…...
apache安装脚本使用shell建立
注意防火墙,yum,网络连接等 以下是具体的apache安装脚本 #!/bin/bash # Set Apache version to install ## author: yuan # 检查外网连接 echo "检查外网连接..." ping www.baidu.com -c 3 > /dev/null 2>&1 if [ $? -eq 0 ]; …...
Azure SDK 使用指南
Azure SDK(软件开发工具包)是一组由微软提供的工具和库,旨在帮助开发者以多种编程语言(如 .NET、Java、Python、JavaScript 等)与 Azure 服务进行交互。 通过使用 Azure SDK,开发者可以更高效地构建、部…...
DeepSeek-V3-0324 版本升级概要
DeepSeek-V3-0324 魔搭社区汇聚各领域最先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。https://modelscope.cn/models/deepseek-ai/DeepSeek-V3-0324 发布背景与改进 根DeepSeek-V3-0324 展示了以下关键改进: 推理性能提…...
leetcode 150. 逆波兰表达式求值
150. 逆波兰表达式求值 - 力扣(LeetCode) class Solution:def evalRPN(self, tokens: List[str]) -> int:stack[]for item in tokens:if item not in ( ,-,* , / ):stack.append(item)else:preint(stack.pop())pre_beforeint(stack.pop())sign itemi…...
LangChain4j与DashScope深度集成实战:一站式开发指南
本篇文章会通篇详细的讲清楚LangChain4j与DashScope集成的各个方面,从Springboot的集成到Ai对话、会话记忆、RAG、FunctionCalling、互联网搜索、结构化的输出、多模态等都给出相应的说明,希望通过这篇文章对于LLM不了解的同仁一样可以扩展出自己的AI应用…...
逼用户升级Win11,微软开始给Win10限速
随着Windows10的支持时间越来越短,微软也加大了对Win10用户的驱赶力度。 最近,微软官宣了将要在今年6月份降低OneNote for Windows 10的同步速度。软件也将和Windows10在今年的10月14日一同停止支持和维护。 这将影响实时协作和多设备访问。 对OneNote…...
工作流引擎Flowable介绍及SpringBoot整合使用实例
Flowable简介 Flowable 是一个轻量级的业务流程管理(BPM)和工作流引擎,基于 Activiti 项目发展而来,专注于提供高性能、可扩展的工作流解决方案。它主要用于企业级应用中的流程自动化、任务管理和审批流等场景。 Flowable 的核心…...
推荐一个可以自定义github主页的网站
一、简介 Profile Readme Generator 是一个开源工具,可以帮助你快速创建个性化的 GitHub 个人简介(README)。它支持自定义内容和样式,让你的 GitHub 个人主页更加美观和专业。 二、使用步骤 (一)访问网站…...
【R语言可视化】相关系数热图
目录 热图无显著性 结果展示01: 热图显著性 结果展示02: ggplot2绘制三角热图 结果展示03: corrplot绘制三角热图 结果展示04: 热图无显著性 # 示例数据 data(mtcars) df <- mtcars# 计算相关矩阵 cor_matrix <- round(cor(df…...
【区块链 + 文化版权】文创链 | FISCO BCOS 应用案例
“文创链”是由四川省区块链行业协会、成都音像出版社有限公司共同发起, 由成都九天星空科技有限公司等联合打造的数字文创领域联盟链。平台采用FISCO BCOS 开源底层框架, 为数字文创产业构建一个高效、透明、可信的版权管理与交易平台。 平台专注于数字…...
# 使用自定义Shell脚本hello快速配置Linux用户账户
使用自定义Shell脚本快速配置Linux用户账户 在学校实验室管理Linux服务器,或者公司小团队管理服务器时,大家需要一个能隔离自己服务,但是自己又需要对服务器的完整权限的情形。创建和配置用户账户是一项常见但繁琐的任务。特别是当你需要频繁…...
PyTorch中的Tensor
PyTorch中的Tensor 是核心数据结构,类似于 NumPy 的多维数组,但具备 GPU 加速和自动求导等深度学习特性。 一、基本概念 核心数据结构 Tensor 是存储和操作数据的基础单元,支持标量(0D)、向量(1D&am…...
16-CSS3新增选择器
知识目标 掌握属性选择器的使用掌握关系选择器的使用掌握结构化伪类选择器的使用掌握伪元素选择器的使用 如何减少文档内class属性和id属性的定义,使文档变得更加简洁? 可以通过属性选择器、关系选择器、结构化伪类选择器、伪元素选择器。 1. 属性选择…...
关于笔记本电脑突然没有wifi图标解决方案
笔记本电脑突然没有wifi图标解决方案,设置里也看不见wifi,电脑突然就连不网络了 解决方案: 我的电脑——>管理——>服务和应用程序——>服务——>找到WLAN AutoConfig——>点击启动就好了...
Pytorch学习笔记(七)Learn the Basics - Optimizing Model Parameters
这篇博客瞄准的是 pytorch 官方教程中 Learn the Basics 章节的 Optimizing Model Parameters 部分。 官网链接:https://pytorch.org/tutorials/beginner/basics/optimization_tutorial.html 完整网盘链接: https://pan.baidu.com/s/1L9PVZ-KRDGVER-AJnXOvlQ?pwd…...
数据可视化TensorboardX和tensorBoard安装及使用
tensorBoard 和TensorboardX 安装及使用指南 tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具,而 TensorBoardX 是其社区驱动的替代品,支持 PyTorch 等其他框架。以下是它…...
工业4G路由器赋能智慧停车场高效管理
工业4G路由器作为智慧停车场管理系统通信核心,将停车场内的各个子系统连接起来,包括车牌识别系统、道闸控制系统、车位检测系统、收费系统以及监控系统等。通过4G网络,将这些系统采集到的数据传输到云端服务器或管理中心,实现信息…...
深度学习1—Python基础
深度学习1—python基础 你的第一个程序 print(hello world and hello deep learning!)基本数据结构 空值 (None):在 Python 中,None 是一个特殊的对象,用于表示空值或缺失的值。它不同于数字 0,因为 0 是一个有意义的数字&#…...
数据结构十三、set map
一、set 1、size / empty size:返回set中实际元素的个数 empty:判断set是否为空 2、begin / end 这是两个迭代器,因此可以使用范围for来遍历整个红黑树。其中,遍历是按照中序遍历的顺序,因此是一个有序序列。 3、in…...
【大模型基础_毛玉仁】3.5 Prompt相关应用
目录 3.5 相关应用3.5.1 基于大语言模型的Agent3.5.2 数据合成3.5.3 Text-to-SQL3.5.4 GPTs 3.5 相关应用 Prompt工程应用广泛,能提升大语言模型处理基础及复杂任务的能力,在构建Agent、数据合成、Text-to-SQL转换和设计个性化GPTs等方面不可或缺。 . …...
自动驾驶VLA模型技术解析与模型设计
1.前言 2025年被称为“VLA上车元年”,以视觉语言动作模型(Vision-Language-Action Model, VLA)为核心的技术范式正在重塑智能驾驶行业。VLA不仅融合了视觉语言模型(VLM)的感知能力和端到端模型的决策能力,…...
【AI】Orin NX+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功
【AI】郭老二博文之:AI学习目录汇总 1、烧写系统 新到的开发板,已经烧写好Ubuntu系统,版本为22.04。 如果没有升级到Ubuntu22.04,可以在电脑Ubuntu系统中使用SDKManager来烧写Ubuntu系统,网络情况好的话,也可以直接将CUDA、cuDNN、TensorRT、Deepstream等也安装上。 2…...
vscode 通过Remote-ssh远程连接服务器报错 could not establish connection to ubuntu
vscode 通过Remote-ssh插件远程连接服务器报错 could not establish connection to ubuntu,并且出现下面的错误打印: [21:00:57.307] Log Level: 2 [21:00:57.350] SSH Resolver called for "ssh-remoteubuntu", attempt 1 [21:00:57.359] r…...
ESP32S3 WIFI 实现TCP服务器和静态IP
一、 TCP服务器代码 代码由station_example_main的官方例程修改 /* WiFi station ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware is distributed on an &q…...
第三课:Stable Diffusion图生图入门及应用
文章目录 Part01 图生图原理Part02 图生图基本流程Part03 随机种子作用解析Part04 图生图的拓展应用 Part01 图生图原理 当提示词不能足够表达用户需求的时候,加入图片能让AI更好的理解你的想法图片上的像素信息会在加噪和去噪的过程中,作为一种特征反映…...