问题标签 [husky]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1276 浏览

angular - Angular 8 Husky,代码覆盖率的预提交条件

我有一个 Angular 8 项目,我正在尝试设置一个用户无法提交的情况,除非某些百分比的代码覆盖率通过。

我正在使用 NX Workspace 和 Husky 在提交之前运行 Linting。我想在此之上运行 ng 测试,以及我可以提供数字的覆盖率测试。如果所有三个都通过,则提交代码。

我现在有这个 package.json 文件。我该如何添加?

0 投票
1 回答
710 浏览

git - 终止于 SIGABRT

我在提交文件之前使用Husky来检查文件。

但是今天突然遇到一些奇怪的问题,如下所示

我试过谷歌和许多 StackOverflow 链接,但没有运气。任何帮助表示赞赏。

0 投票
3 回答
2581 浏览

githooks - 如何在 gitkraken 中禁用 git 钩子?

我正在处理一个配置了 git 挂钩的项目。很遗憾。添加它是为了防止初级或无头开发人员将 CI-check-failing 代码提交到他们的分支。

我就是其中之一,他们忽略了带有HUSKY_SKIP_HOOKSenv 变量的 git 钩子,但对我来说,它在 GitKraken 中不起作用。

你知道如何忽略 GitKraken 中的 git 钩子吗?

0 投票
1 回答
119 浏览

git - GIT:如何在远程分支中的特定文件的 git push 之后触发 npm 脚本?

我有一个要求,一旦我将一个 csv 文件推送到远程分支,它应该调用一个 npm 脚本来处理来自 CSV 文件的数据。

请建议哪种方法是最好的方法。

0 投票
1 回答
2748 浏览

node.js - Husky 没有被 git 事件触发

我创建了一个反应应用程序,它实现了 husky 来捕获 lint 错误:

环境

git version 2.21.0 (Apple Git-122), node v8.16.2,npm v6.4.1

皮棉实现

  • 使用创建了一个反应npx create-react-app my-app-name
  • 使用 eslint 实现eslint --init
  • 将脚本添加到package.json文件中:

    “scripts”: {“lint”: “eslint src/**/*.js”,}

  • 在运行eslint src/**/*.jsnpm run lintlint 错误被完美捕获

赫斯基实施

  • 安装哈士奇npm install husky --save-dev
  • 将哈士奇钩添加到package.json

    "husky": { "hooks": { "pre-commit": "npm run lint:fix", "pre-push": "npm run lint" } }

测试 git 提交

  • git commit -m "test commit"

问题

触发提交时永远不会调用 lint。这里有什么问题?顺便说一句,我已经尝试过这里提出的解决方案。

0 投票
2 回答
2902 浏览

git - 为什么在取消 git 提交后我的更改消失了,如何恢复它们?

这是我所做的:

  1. 编码 8 小时的更改。
  2. git status显示我的所有更改。
  3. git add -A
  4. git commit -m "Foo". 预提交 git 钩子使用huskyand触发lint-staged
  5. 我记得有一个我未能修复的 TypeScript 输入错误,所以我按 Ctrl+C 取消。
  6. 心不在焉,我又跑git commit -m "Foo"了一次,立即取消。
  7. 变化消失了!文件被还原,git status干净,git log并且git reflog不显示新的提交。

为什么我的更改被还原了?我该如何恢复它们?

第1步 第2步

0 投票
0 回答
328 浏览

npm - 等待 husky commit-msg hook 完全完成并运行 Enquirer

我有一个脚本,我在 Git 提交期间运行,以使用 Husky 的commit-msg钩子获取当前提交消息,并使用该脚本发出 HTTP 请求。我的挑战是在 Husky 钩子脚本完成后运行另一个脚本。我要运行的脚本使用Enquirer NPM 包。我尝试在 Husky 的钩子中运行包含 Enquirer 代码的脚本,post-commit但发生的情况是两个脚本同时运行,第二个脚本以 退出commit-msg,所以我想要一种方法等待commit-msg完全完成然后我用 Enquirer 运行那个。我尝试通过关注此线程来解决问题,但子进程也以commit-msg. 输出看起来像 在此处输入图像描述

关于如何规避这个问题的任何想法?谢谢。

下面是哈士奇的配置 在此处输入图像描述

0 投票
0 回答
683 浏览

javascript - 如何在 Angular 7 中运行预提交?

当我运行 git commit 时,我需要运行ng lint --fix我尝试过的这个。我的package.json文件图片附在下面:

在此处输入图像描述

但它不适合我

0 投票
1 回答
523 浏览

node.js - 当本地没有可用的 Node.js 时使用 Husky 和 ​​Docker

使用 Docker,当容器中有 Node.js 而本地机器上没有 Node.js 时,我试图让 Husky 工作。

因为它会被 git 命令触发,这里的信息:“如果你在终端中运行 git 命令,husky 将使用你的 shell 中定义的版本PATH”,另一个~/.huskyrc:“如果存在,Husky 将源文件在运行钩子脚本之前。您可以使用它,例如,加载节点版本管理器或在钩子之前运行一些 shell 命令。

像改变PATH它指向容器中的 Node.js 这样的解决方案可以吗?如果可以,怎么做?

提前致谢!

0 投票
4 回答
11344 浏览

git - Husky 4.x+ 不能与 Visual Studio Git 一起使用

Husky用 4.0.0 改变了它的路径处理在此更改之后,它会在从 Visual Studio提交时引发以下错误:

但是,当从 CLI提交时,它按预期工作。鉴于错误消息具有'C:\lint-staged\bin\lint-staged.js'文件路径,我假设 Visual Studio 以不同方式处理路径。

我正在尝试从 Visual Studio 中找到一种方法来完成这项工作。我在企业环境中,所以我希望有一种方法可以将此配置包含在存储库中(而不是需要手动本地设置)。

我的 package.json 中包含 husky 配置

我目前正在使用:
nvm 1.1.7 和 Node 12.16.1 husky
4.2.5
lint-staged 10.1.3
visual studio 2019