问题标签 [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.
githooks - 如何在不阻塞提交的情况下使用 husky 和 lint-staged 运行“stylelint --fix”
我正在使用 husky 和 lint-staged 使用此配置在我的 sass 文件上运行“stylelint --fix”
和 PhpStorm 阻止我的提交告诉我:
Commit failed with error, 0 file committed, 4 files failed to commit: test lintstaged husky > pre-commit (node v12.18.4) ⚠ Some of your tasks use `git add` command. Please remove it from the config since all modifications made by tasks will be automatically added to the git commit index. [STARTED] Preparing... [SUCCESS] Preparing... [STARTED] Running tasks... [STARTED] Running tasks for resources/sass/*.scss [STARTED] stylelint --fix [FAILED] stylelint --fix [FAILED] [FAILED] stylelint --fix [FAILED] [SUCCESS] Running tasks... [STARTED] Applying modifications... [SKIPPED] Skipped because of errors from tasks. [STARTED] Reverting to original state because of errors... [SUCCESS] Reverting to original state because of errors... [STARTED] Cleaning up... [SUCCESS] Cleaning up... ✖ stylelint --fix: resources/sass/_custom.scss 614:1 ✖ Unexpected duplicate selector "body", first used at line 116 no-duplicate-selectors 974:11 ✖ Unexpected unknown type selector "readonly" selector-type-no-unknown 988:1 ✖ Unexpected duplicate selector "body", first used at line 116 no-duplicate-selectors 1313:1 ✖ Unexpected duplicate selector ".btn.clear", first used at line 418 no-duplicate-selectors husky > pre-commit hook failed (add --no-verify to bypass)
我在文档上读到使用命令“--no-verify”它会跳过“stylelint --fix”,但我想运行“stylelint --fix”来修复stylelint可以修复的错误并跳过防止犯罪。
换句话说,我想修复可以自动修复的错误并提交,即使有来自 stylelint 的警告。
有可能这样做吗?
javascript - 加载规则“@typescript-eslint/dot-notation”时出错
今天我运行 eslint,两个脚本
当我运行时npm run eslint
// 没问题 当我运行时npm run lint-staged
// 这是错误的
lint-staged 的结果;
包装内 lint-staged
发生了什么事?
angular - GITHook Husky Angular
在我们的 Angular 应用程序中,我们希望在将代码推送到 GIT 之前运行“ng test”。所以这样做我们集成了 husky for GIT hook。
在package.json
,下面提到"git-hook": "npm run test-headless"
。
我只想在所有测试用例成功执行的情况下将代码推送给代表,但目前即使测试用例失败,代码推送也在发生。
git - 通过覆盖“检测到 CI,跳过 Git 挂钩安装”在 Jenkins 管道作业中安装 husky git 挂钩
我正在尝试使用husky安装 git hooks 作为 Jenkins 管道作业的一部分。
我已将此添加到 Jenkins 工作中:
但是当作业运行时,我在 Jenkins 输出中看到了这一点:
...并且.git/hooks/precommit
永远不会创建挂钩文件。
故障排除研究笔记:
在husky v4 文档中,它说“默认情况下,Husky 不会安装在 CI 服务器上”。我找不到任何有关如何覆盖该默认行为的文档。
搜索 repo 代码时,我什至在代码中找不到“检测到 CI,跳过 Git 挂钩安装”字符串 。
我在 2017 年的 husky repo 中发现了一个问题,开发人员解释了为什么 husky 不在 CI 中安装,但没有解释如何覆盖它,而是表示他们有兴趣了解在 CI 中运行 husky 的用例(暗示至少在 2017 年没有办法覆盖)。
在 2019 年 6 月的这篇博文中,作者暗示 husky 根本无法在 CI 中运行,它使用is-ci来检测它是否在 CI 服务器上运行。在此处
is-ci
的 husky 文档中提到,他们建议使用它来检测 husky 是否在 CI 中运行并用于禁用它。但是,我遇到的行为是 husky 已经不在 CI 中运行。我尝试过设置Jenkins 工作,但没有效果。HUSKY=0
HUSKY=1
node.js - npm 错误!使用 husky 和 lint-staged 编码 EJSONPARSE npm install
我的package.json可以在没有husky和lint-staged 的情况下工作,但不能与它们一起工作。它在说:
我在package.json中添加的是...
"husky": { "hooks": { "pre-commit": "npm run test && prettier --write", "pre-push": "npm run test && prettier --write" } }, "lint-staged ": {“*.{ts,tsx}”:[“更漂亮--write”,“git add” ] }</p>
一些用户要求我上传整个package.json,所以这里是代码......
git - Husky v5 不创建 Git 钩子
我已经在我的应用程序中安装了 Husky v5,我想在提交时运行该lint-staged
命令。
我遵循了入门文档,但在我的 git 配置文件中没有创建 .git/hooks/pre-commit 文件。
所以,当我提交时,钩子没有运行,提交直接通过,没有被 lint-staged 检查。
我试过跑步yarn add -D husky@next
或npm i -D husky@next
。我还尝试删除 node_modules 和 npm 重建。
.husky/预提交
包.json
pre-commit-hook - 使用 Husky 时出现预提交错误“找不到模块 - npx-cli.js”
我正在尝试运行一个 pre-commit 挂钩,该挂钩使用 husky 和 stylelint 检查我的风格,但是当我尝试提交文件时 GitKracken 失败。日志内容如下:
我正在运行 npm version: 6.13.4和 node version: 12.14.1。根据我的研究,npx 已经与 npm 一起安装在超过 5 个左右的任何版本中。我也尝试过全局安装 npx ,但无法安装声明文件已存在。
我确定这是一个路径问题,或者我可能错误地使用了 husky,但我想看看是否有人知道我为什么在让它工作时遇到问题。感谢您提供的任何见解。
包.json
git - 预提交挂钩检查源 lint(未暂存)
git hooks 的想法是防止提交错误的源代码。我husky
用于此目的。这是我的设置:
如果存在 lint 错误,它会阻止提交。这是场景:
- 开发人员编写了错误的代码(例如
x==y
应该x===y
从 lint 的角度来看) - 他使用这些命令:
git add .
并且git commit -m "msg here"
失败了。因为 lint 失败了。 - 他更正了源代码。但他没有再做
git add .
一次,而是使用了这个命令git commit -m "msg here"
:这次 lint 没有失败,因为在源代码中一切都很好,并且ng lint
成功了。但实际上,他正在提交之前添加的先前版本。
知道如何防止这种情况吗?
git - 赫斯基钩子不在 Lerna monorepo 中运行
我正在开发一个 MonoRepo,我试图自动化的最后一件事是我对代码提交的所有 linting/formatting。
目前我的大部分配置都在根文件夹中,我正在将它们扩展到包中。如果我npm run precommit
在根目录中运行,我可以看到我的包被成功检查。
当我暂存并提交代码时出现问题,哈士奇钩子不运行并且提交通过而没有成功进行检查
文件夹结构
根包.json
每个包里面都有这个脚本