问题标签 [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 - 有没有办法只在新文件上运行 lint-staged (之前 git 未跟踪的文件)
在我用 Typescript 编写的项目中,我想开始为所有函数的返回类型和参数类型强制执行类型注释。为此,我创建了一个单独的 tslint 配置,它扩展了我的主配置,并在此之上添加了这个规则。我正在通过 husky 运行 tslint,并使用此扩展配置进行 lint-staged,以在提交更改之前检查所有暂存文件。问题是:如果我对其中一个旧文件(其中一些非常大)进行更改,lint staged 也会检查这个文件,除非我对所有文件中的所有函数进行类型注释,否则不会让我提交。但这是很多工作,我只想对新文件强制执行此操作。有没有办法将暂存文件过滤到仅在此提交中添加的文件?
ruby-on-rails - 赫斯基显示 Bundler::RubyVersionMismatch 错误
最近我尝试在我的应用程序中集成 husky 以进行预提交格式化。我只使用 rubocop 来测试提交,但是当我尝试提交时它给出了一个错误。
我的 package.json
它给出的错误
我的 rvm
注意:rails server
运行得很好,其他所有命令也是如此。
reactjs - 设置 lint-staged for jest
我必须尝试使用 lint-staged 设置哈士奇。最初,我试图进行如下设置,但这不起作用。
然后我经过一番搜索后将我的设置更改为以下但那再次报告了差异错误
错误描述
当我npm run test
在终端运行时,它工作正常。那么为什么它不能与 `lint-staged. 我在这里做错了吗?
我的 package.json
angular - 在 Intellij idea 中运行“ng lint --fix”后,“lint-staged”包未提交更新的文件
我在我的 Angular 7 应用程序中配置了 lint-staged,如下所示。
我正在使用 Intellij 的想法。当我在编辑器中提交文件时,它运行沙哑。如果有任何错误,它会修复它们,但会提交旧文件,而不是在“ng lint --fix”之后更改的文件,我必须再次提交更改的文件。
基本上我希望在执行“ng lint --fix”而不是旧文件后提交更改的文件。
有关如何解决此问题的任何帮助?
git - 当我根据提交消息提交时,如何提升 package.json 版本?
我试图在提交时更改我的 package.json 文件的版本,但前提是提交消息的前缀正确:MJ
前缀触发补丁凹凸,^
前缀触发小凹凸。我写了一个 gulp 任务来做到这一点并且它有效,唯一的问题是我无法获取当前提交的消息,执行任务,然后将 package.json 添加到提交并继续。
我尝试在这两个 git 钩子上运行我的任务:
pre-commit
问题:
- 我只能访问这个钩子中的上一个提交消息,而不是我们现在正在做的那个。
什么有效
- 我可以修改版本,但只能基于之前的提交消息
- 我可以暂存 package.json
- 然后可以将 package.json 与其余部分一起添加到提交中
prepare-commit-msg
问题:
- 暂存 package.json 不会将其添加到提交中
什么有效
- 我可以根据当前的提交消息来调整版本
- 我可以暂存 package.json
这是我用两个钩子尝试过的 gulp 任务。我消除了一些噪音以尽量减少噪音。
几乎所有内容都依赖于使用该getCommitMsg
函数获取的提交消息。也许fs.readFileSync(".git/COMMIT_EDITMSG", "utf8");
不是要走的路?也许我可以运行另一个命令(使用)来获取挂钩shelljs
中的当前提交消息?pre-commit
否则,如果我使用prepare-commit-msg
钩子,那么我可以获得正确的消息,但是我如何将它与其他暂存文件一起添加到当前提交中?
husky - Husky/lint-staged 预提交格式问题
运行 husky/lint-staged 钩子以进行预提交格式化(工作正常)。有一个奇怪的错误,由于某种原因,它在一个文件上一直以 1 个制表符而不是 2 个空格的间距格式化文件。(husky/lint-staged 似乎用制表符间距重写/重新格式化整个文件,但只是这个文件)
不知道为什么会这样,以前有人遇到过这样的问题吗?非常感谢任何对此的帮助,因为我在这个阶段正在拔头发。
亲切的问候,用户界面
husky - Husky/lint-staged 是否可以排除/忽略文件?
使用 Husky/lint-staged 挂钩时是否可以排除/忽略文件?
浏览文档 atm 但没有任何运气找到任何关于此的内容。
希望有类似的东西
我可以添加的标签。
使 lint-staged 忽略某些导致格式问题的文件。
对此的任何想法都非常感谢:)
git - 适用于命令行和 Intellij 的 lint-staged + commitizen 配置
我正在尝试构建一个适用于命令行和 Intellij 的配置。
这是我的一部分package.json
它在命令行中运行良好,但是在使用 Intellji 提交时,它会说类似
有解决方案吗?
node.js - 当作为子文件夹中 git 钩子的一部分运行时,为什么 `git` 命令会失败?
我们最近将一个 Node 项目移动到 mono-repo 的子文件夹中,之后我们的提交挂钩(使用 Husky 安装)由于在错误的目录中执行而开始失败:
我在解决问题时没有问题(基本上cd
是在执行挂钩中的任何命令之前 - 进入根目录git
),但我不明白为什么(未修复的)脚本在命令行上工作 - 不管哪个我执行它们的文件夹?.
脚本的失败部分基本上是:
项目布局
将触发上述错误的示例命令:
除了错误之外,它还会打印工作目录:PWD /tmp/foo/myproj/frontend
如果我手动触发脚本,一切正常:
无论是根文件夹还是子文件夹,这都有效,我看不出有什么区别。Husky 应该找到该.git
文件夹,这似乎证明了这一点,但是当它作为挂钩脚本运行时,显然会发生一些变化。自动生成的 Husky 脚本的相关部分是: