问题标签 [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.
git - 哈士奇预推钩构建前
我想实施一个 husky 规则以使其运行yarn build
并确保将要推送的内容不会破坏应用程序。
我浏览了网页,但仍然不确定以下方法是否正确?
git - Jest - 查找相关测试并在 `pre-commit` Hook 上运行它们
我有 Jest 作为我的测试运行者。我的提交钩子里也有哈士奇。我想在每次提交、受我的更改和相关更改影响的测试上运行。
我在 Jest 的文档中看到了以下选项,但我在使它们起作用方面没有取得进展:
您是否有文档或任何可能有用的示例。或者向我解释我怎么能做到这一点。?谢谢!!
git - 保护 git 存储库中的删除/重命名文件
git 存储库中是否可以有一个或多个文件可以更改但不能删除或重命名?用例是关于存储库设置,其中多个env
文件只能由开发人员调整,但要防止他们意外删除或重命名文件,因为如果没有使用该确切名称的文件,CI 会中断。
我的一个想法是编写某种 bash 或节点脚本并将其与huskypre-commit
挂钩到git 挂钩中,但我不确定该脚本会是什么样子。另一个想法是最初为文件设置正确的文件权限,但我不确定这些权限是否会保留在克隆在不同操作系统平台上的 git 存储库中。env
无论如何,也许有一些更惯用和更聪明的方法来做到这一点。令人惊讶的是,我在网上找不到任何东西......所以如果不是太麻烦,各种创造性的解决方案都可以接受。谢谢!
git - 使用 Husky 和/或 Lint-Staged 检查 CI 服务器上的代码质量
在 Python 世界中,通常使用pre-commit
,它提供了一个git commit
钩子,然后在您的 CI 服务器上运行pre-commit run --all-files
,它将忽略提交并在所有文件上运行 linting 工具。这可以确保,例如,拉取请求必须通过 linting 要求,否则构建将失败。
但是,在 JS 世界中,使用Husky + Lint-Staged似乎很常见,它满足了git commit
钩子要求,但似乎没有等效于pre-commit run --all-files
. Husky 用户如何在他们的 CI 中检查 pull request 代码?
git - 为什么未跟踪的文件会被提交?
当我输入时git status
,我得到下面的输出。
然后我进行提交git commit -m 'Test commit.'
,不知何故,未跟踪的文件出现在提交中。
为什么未跟踪的文件会出现在提交中,即使下面只有 3 个文件Changes to be committed?
node.js - Husky 预提交钩子在提交后完成
编写以下脚本是为了在预提交挂钩上按键对 JSON 文件进行排序:
我将脚本附加到我package.json
的husky
precommit 钩子上:
结果是提交完成,然后脚本才完成创建的未暂存更改。Finished sorting files
脚本本身与最后打印的消息同步运行。
我的问题是,我怎样才能使它同步;先跑完node ./scripts/husky/json-sort src/assets/translations
,然后git commit
。
谢谢!
bash - Husky:预提交挂钩启动 bash 脚本,但不等待用户选择
当我进行提交时,bash 脚本会启动,但不会等待用户选择
.huskyrc 文件
pre_commit.sh 文件
git - 仅在发生更改时使用 husky pre-push 运行测试
如标题所示,目前我已将我的应用程序配置为在每次执行 git push 时运行测试,
但显然它不能很好地扩展,测试越多,推送所需的时间就越多,那么有没有一种方法可以仅在文件发生更改时触发测试?
最终我发现 Jest 有一个很好的标志,--changedSince
所以你可以在你的 package.json 文件中有这样的东西:
"test:unit": "test:unit --changedSince=@{push}"
这将只执行自上次推送以来已更改的文件的测试,与远程 HEAD 进行比较
npm - Husky 安装失败无法读取 null 的“toString”属性
我有一段时间在安装 husky(使用 lint-staged)时遇到问题,非常感谢任何帮助。我的项目设置是:node JS,带有 eslint 的 npm,更漂亮的设置,现在尝试使用 lint-staged 添加 husky。
主要问题:
安装 husky “npm install husky --save-dev” 时,预提交文件(在“.git/hooks”文件夹中)没有被 Husky 代码修改!安装消息:
系统详细信息:操作系统:Windows 10 Git:git 版本 2.28.0 node -v v12.16.1 husky:4.2.5
我尝试了以下方法:(1 Git 已注册为 env PATH 变量(2 全局 gitconfig 文件中没有设置 hooksPath 将指向本地工作区中的 .git/hooks 以外的另一个目录(3 安装/卸载 Husky( 4 通过删除 .sample 使预提交文件可执行(5 完全删除 .git/hooks/pre-commit 文件(6 在“package.json”文件中添加必要的脚本,如下所示)
我仍然没有运气。
因此,在提交更改时,husky 根本不会运行!
提前感谢您的帮助!
git - git hooks如何通过命令行参数和stdin获取参数?
我想使用参数获取价值并将它们用于预推挂钩。如何获得?以及如何为 HUSKY_GIT_PARAMS 和 HUSKY_GIT_STDIN 设置环境变量?
下面是我的 .huskyrc 文件: