问题标签 [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 投票
3 回答
25703 浏览

git - 如何使用 husky 检查 git commit 消息格式?

我正在尝试执行 git commit 消息策略以保持我的存储库干净整洁。我看过关于服务器端和客户端钩子的官方文档,然后我碰到了husky

到目前为止,我可以使用第一个但无法设置哈士奇,我还有很多东西要学。主要思想是能够在新工作站上工作,而无需手动设置任何客户端挂钩。

有人可以解释我如何设置 husky 来检查我的提交消息,甚至举个例子吗?

这是我在文件夹中的 commit-msg 钩子project-root/githooks

我尝试将脚本添加到 package.json:

钩子不起作用。所有消息都通过。如果放入 .git/hooks 它可以正常工作。

测试项目中的 package.json 和 commit-msg 挂钩

这是一个带有 package.json、commit-msg 钩子和它给出的错误的测试项目的屏幕截图。

同样的钩子,放在 .git/hooks 文件夹中,工作得很好。

0 投票
3 回答
9459 浏览

javascript - 如何使用 husky npm 模块在预提交时运行多个命令?

我在提交之前使用 husky 来检查 JS。在我的 package.json 我有

它有效,我不明白如何同时运行 lintJS、lintStyles 命令。

0 投票
2 回答
3252 浏览

node.js - Husky 给出错误 SyntaxError:在严格模式下使用 const

我正在使用带有Lint-stagedStylelint的Husky

操作系统 - 最新的 OSX

节点 -6.10.0

新PM -3.10.00

我收到此错误git commit

0 投票
2 回答
1029 浏览

javascript - 预提交时是否可以禁止使用 ESlint 或其他任何内容的单词列表?

我正在使用 husky 来处理预提交的事情。

所以在这里我希望新编写的程序不应该包含一个单词列表,比如dangerouslySetInnerHTML,等等。

我知道no-dangereslint-plugin-react 中有一条规则,但它只会阻止这个词。如何在文件中编写单词列表并将其用作过滤器?

0 投票
3 回答
20189 浏览

git - git不在Visual Studio代码中工作

我一定搞砸了我在项目中安装了 husky 的东西。然后我运行precommit命令。现在当我运行 git 命令时,它不起作用并询问我你想如何打开文件,所以我删除了 husky 使用npm prune,然后从/.git项目目录中删除了 hooks 文件夹,但仍然没有帮助。我正在使用 Windows 10

0 投票
1 回答
614 浏览

javascript - 使用 Husky 添加预提交钩子而不向 git 推送添加

嘿,我想在我的 git 中添加一个脚本,package.json但不想检查这个添加到我们的 git,因为它会影响我同事的项目行为。

我要添加的脚本是由 husky 处理的 precommit-Hook。是否有可能有类似 package.override.json 的东西,我在其中定义脚本并忽略 .gitignore 中的文件,还是有不同的方法?

0 投票
1 回答
403 浏览

git - 多分支推送问题 - 使用 Husky 预推送 Git Hooks

我的问题很简单:

  • 我正在使用 Husky 处理 git hooks
  • 我已经配置了一个运行 2 个脚本的预推送挂钩:

    "prepush": "npm-run-all --parallel lint test"

  • 它在单推上正常工作

  • 但是当我尝试推送 2 个或更多分支时,它没有检测到失败的脚本。

例如,假设我创建了 2 个分支:

1) 功能/分支-1

2) 功能/分支 2

  • 分支 1 包含 lint 问题,分支 2 是干净的(没有测试失败/没有 lint 问题)
  • 我结帐到分支 2 并推送两个分支(在我的例子中使用 SourceTree)。

Husky prePush scrit 被调用,但 lint 脚本没有失败(如果我只推送那个分支时它失败了)。

我正在使用赫斯基 0.14.3

0 投票
1 回答
7752 浏览

javascript - 在 precommit 中运行 ESLint 不会因警告而停止

我正在向我的项目中添加一些预提交和预推送脚本。我正在使用赫斯基,因为它会在 git 上跟踪任何更改。

在我的 package.json 我有:

最初似乎工作正常,当发现任何测试或 lint错误时,我无法提交。

现在我发现如果我有一个警告,提交无论如何都会发生。

如何配置 Husky 或 ESLint,以在出现警告时停止提交?

我知道我可以覆盖所有 eslint 配置以始终出错 [2],但我期待有更好的东西

0 投票
2 回答
12269 浏览

typescript - How to lint for Typescript compilation issues?

Take the following Typescript arrow function:

When Typescript is configured in tsconfig.json as such:

This correctly results in a compilation error:

[ts] Parameter 'baseName' implicitly has an 'any' type.

Visual Studio Code is also smart enough to inform you about this issue during development.

My goal is to create a precommit git hook that prevents such errors from ending up in version control. I tried to do this with tslint, husky and lint-staged using this npm script:

However, this does not result in the compilation error showing up by tslint. It is silently ignored.

I then tried to add a rule in tslint.json:

While this did make tslint complain, it also started to complain in anonymous arrow functions where the tsc compiler does not complain. In these arrow functions it should not be necessary to add types because the types were already set previously in the parent scope (they are inferred).

So basically, I would like for tslint to behave the same as tsc in this case. Anytime there is an error that would cause compilation to fail (such as the above arrow function), I would like to prevent the commit, but without actually compiling to Javascript. Is this possible?

0 投票
5 回答
31768 浏览

husky - 这是使用 husky + lint-staged 的​​正确方法吗?

我发现许多博客(包括 lint-staged doc)介绍了一种使用 husky+ lint-staged 的​​方法,如下在 package.json 中定义的代码:

由于存在“prettier”和“eslint --fix”都无法修复的错误,我们如何防止这种用法导致错误提交?