问题标签 [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 回答
415 浏览

githooks - 未生成 Git 挂钩

我正在开发一个项目,该项目使用husky. 我跑了npm install,我可以看到安装了 husky 但没有生成钩子。

我怎样才能生成相同的?

PS我没有任何预先存在的钩子。

任何帮助,将不胜感激。

0 投票
0 回答
843 浏览

node.js - 增加内存限制 npm 包不适用于运行节点 npm 包

我已经添加了“增加内存限制”包一段时间来增加节点内存并修复堆内存不足的问题。

我最近将 cypress 作为预提交过程引入了 E2E 测试的代码库,并且可以看到“run-node”包已作为他的依赖项安装。

在此之后我收到以下错误或运行 git commit

desktop/node_modules/run-node/run-node:第 26 行:意外令牌附近的语法错误(' desktone/node_modules/run-node/run-node: line 26:has_node --max-old-space-size=2048() {'

不知道如何解决。

我在 package.json 中有以下内容以增加节点内存限制

0 投票
0 回答
307 浏览

eslint - 仅对新添加的文件进行 Linting

我正在使用 lint-staged 和 husky 在提交之前对所有暂存文件运行 linter。但是我的代码库很旧;所以现在不想对现有(修改过的)文件运行 linter。有没有办法只针对新创建(添加)的文件运行 linter?

0 投票
1 回答
4026 浏览

githooks - 与 lint-staged 一起使用时,预提交规则失败

我正在尝试为 angular5 项目设置预提交 git 挂钩。我正在使用带有 lint-staged 的​​哈士奇。Prettier 和 stylelint linters 运行良好。但是当 lint-staged 遇到 'ng lint' 时,它只会抛出错误:

这是我在 package.json 中的 husky 和 ​​lint-staged 配置

还:

"npm run prettier:check", "npm run stylelint", 这两个命令运行正常但是 npm run lint 有错误

0 投票
1 回答
2544 浏览

husky - lint-staged 正在为所有更改的文件运行 ng -lint,而不仅仅是暂存文件

我正在尝试将 husky 与 lint-staged 一起用于 angular5 中的预提交 git 钩子。Prettier 仅格式化暂存文件。但是当我运行 ng lint 命令时,它会在所有已更改的文件上运行,而不是仅在暂存文件上运行(我修改了 4 个文件,但使用 git add 命令仅将 2 个文件添加到暂存区。但是所有 4 个文件都检查了哪些 linting不是我所期望的)

这是 .lintstagedrc 中的配置

0 投票
0 回答
800 浏览

javascript - lint-staged 失败,并显示“找不到 npm。请尝试 `npm install npm`。”

我已经lint-staged安装在一个多包存储库中。

结构是:

我在同一台机器上的不同 repo 中有相同的设置,下面的工作没有错误。

我正在使用 lint-staged 在预提交时运行 eslint。每个子包中都有一个lintnpm 脚本。

在另一个存储库中,我毫无错误lint-staged地调用每个包,但是,在这个存储库中,当针对阶段文件运行它时:

  • 正确识别暂存文件
  • 产生错误npm could not be found. Try npm install npm.
  • 如果我将 npm 脚本更改为简单,"git add"那么错误是git could not be found. Try npm install git.

运行which npm在工作和非工作存储库中产生相同的结果。

Runningnpm install或任何其他 npm 命令在直接运行时有效,但在通过lint-staged.

我不知道是什么原因造成的?

0 投票
1 回答
4318 浏览

javascript - Eslint precommit husky hook 在 create-react-app 项目中没有按预期工作

这是我的配置

包.json

现在,如果我只是在像这样的项目上运行它./node_modules/.bin/eslint .,它就会像往常一样工作。显示需要在文件中进行的更改,但不能用作预提交挂钩,但 prettier 正在工作。我仍然看到 eslint 在每次从命令行提交之前运行,但我没有看到任何输出。可能是什么问题?

  • 将行更改为eslint * --fix, 显示了要在所有文件中进行的修复,甚至是.css.md文件。
  • 让它eslint *.js --fix告诉我,没有找到与该模式匹配的文件。
  • 甚至eslint . --fix不起作用。

如果需要该信息,我的文件夹结构是一种简单的 create-react-app 格式。完整的回购在这里

我也会在下面发布 eslintrc 和 prettierrc 文件,

.prettierrc

.eslintrc

说明:

1)我不得不使用更长格式版本的更漂亮的配置,而不是plugin:prettier/recommended因为我在尝试使用单独的 prettierrc 配置文件而不是将其内联在 package.json 时遇到了这个错误

2) 我不得不使用较低版本的 eslint,因为较新的版本会从普通的 create-react-app 中抛出随机错误,因此必须按照此处讨论的方式对其进行降级

0 投票
2 回答
12649 浏览

git - 为什么我的 git pre-commit 钩子没有运行?

直到最近——我几天前才注意到这一点——我的 git pre-commit 钩子正在工作。我正在编写一个反应应用程序,并在提交之前使用 Husky、TSLint 和 Prettier 来清理和整理我的代码。现在,当我更改和提交文件时,预提交挂钩不会运行。

我的项目结构如下所示:

如果我手动执行钩子,它似乎运行良好:

但是当我真正尝试提交时,哈士奇并没有运行:

知道为什么它没有运行吗?

0 投票
2 回答
2048 浏览

githooks - 如何创建一个检查文件中是否有任何 console.log() 的哈士奇“钩子”预提交

我无法找到正确的方法来为 husky 创建一个钩子,以防止在提交之前在我的代码中出现调试行。

我一直在阅读文档,以及关于同一主题的一些问题,但它们都无法帮助我。

我想使用 Husky 来阻止我的代码中的调试行,我也在使用 eslint 和 prettier,但是它们都没有按照我当前的规则检查代码中是否有任何调试行,我希望他们留下这个方式,因为我只想在预提交中被阻止。

0 投票
2 回答
1482 浏览

git - 哈士奇的工作原理是什么?

https://github.com/typicode/husky能够自动运行 git 钩子,它们可以在自己的存储库中的团队之间共享。

这怎么可能奏效?由于钩子需要在.git/hooks其中未添加到存储库中。

它是否包装git命令和拦截命令,在它们发生时运行钩子?

我想在不需要依赖 npm 或 node 的情况下为 python 和 php 项目重现这种行为。