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

javascript - 即使在失败后也不会触发预提交挂钩

在此处输入图像描述

即使在 lint 失败后,代码也会被提交。如何防止这种情况?

如果我不添加cross-env CI=true,开玩笑的测试用例不会中断。我正在尝试执行干净代码的 linting 和单元测试。

0 投票
1 回答
2799 浏览

jestjs - 没有找到测试用例 Jest

我在lint-staged插件方面遇到了一个奇怪的问题。它之前工作正常。

所以问题是当我运行npm run test它时会生成覆盖率报告。

"test": "cross-env CI=true react-scripts test --coverage",

在此处输入图像描述

但是当我使用huskypre-commit 运行相同的命令并且lint-staged它不起作用时。当我检查控制台时,我发现它正在针对已修改的文件运行。

有明显区别

当我跑

npm run test它运行

cross-env CI=true react-scripts test --coverage

npm run test被 husky 和 ​​lint-staged 调用时

它被称为 cross-env CI=true react-scripts test --coverage "/Users/carlos/Desktop/portal/src/container/Auth/Login.page.js"

之后附加了文件路径--covrage

这是我的包 JSON 配置。

注意:当我使用 lint-staged 时,只有当我使用pre-commit:npm run test它工作正常时才会发生这种情况。

0 投票
1 回答
3744 浏览

git - 如何使用 Husky 预提交挂钩访问提交消息?

我的沙哑脚本:

假设我正在做一个git commit -m "I want that text". 如何在 shell 脚本中访问我的提交消息?我试图在 shell 脚本中回显 $HUSKY_GIT_PARAMS 和 $HUSKY_GIT_STDIN 但没有成功

0 投票
2 回答
2063 浏览

git - 如何让 Visual Studio Code 在提交之前保存文件中的更改?

我经常提交,然后注意到我正在处理的文件之一没有保存,因此被排除在提交之外。

我用 Husky 建立了我当前的项目,并在提交或推送之前进行了自动化测试 / linting。

这是当前的 Husky 设置,只是为了让您了解脚本可以适合的位置。

有什么方法可以让 Visual Studio 或 Husky 保存所有打开的文件预提交?

0 投票
1 回答
357 浏览

husky - Yorkie git 钩子总是以“未找到”而失败

我正在使用 yorkie 2.0.0,并且无法在我的 git 挂钩中运行任何自定义 shell 脚本。我的目录结构如下所示:

我的 package.json 有这个 gitHooks 部分:

commit-msg文件绝对是可执行的,这是ls -l行:

创建提交时,我得到以下输出:

我尝试了各种不同的目录结构,但从未找到。我已将 package.json 中的 gitHook 脚本更改为类似ls .githooks的内容,然后文件就会显示出来。

到底是怎么回事?为什么yorkie找不到我的文件?

(我用 husky 标记了这个,因为 yorkie 是 husky 的一个分支,变化很小,并且没有 yorkie 标签。这里的问题可能不是 yorkie 特有的)

0 投票
1 回答
946 浏览

node.js - 运行 npm install .nvmrc 会填充看似随机的节点版本

npm install从我的项目运行会在./node_modules/sockjs-client/.nvmrc下创建一个指向6.14.2.nvmrc的文件。关于我的本地安装的一些信息:

  • nvm --version: 0.34.0
  • npm --version: 6.4.1
  • node --version: v11.3.0
  • nvm ls

    -> v11.3.0
    v12.10.0
    系统默认 -> 11.3.0 (-> v11.3.0)
    节点 -> stable (-> v12.10.0) (默认)
    stable -> 12.10 (-> v12.10.0) (默认)
    iojs -> N/A (默认)
    不稳定 -> N/A (默认)
    lts/* -> lts/dubnium (-> N/A)
    lts/argon -> v4.9.1 (-> N/A)
    lts/硼 -> v6.17.1 (-> N/A)
    lts/碳 -> v8.16.1 (-> N/A)
    lts/dubnium -> v10.16.3 (-> N/A)

问题与我的 git 钩子有关,如下所示:当我尝试从命令行提交时,我没有任何问题。节点版本被适当识别,我可以成功提交。

但是,从其他 UI 环境(IntelliJ、SmartGit)来看,git 挂钩失败并显示以下内容:

当我删除node_modules文件夹和.nvmrc子文件夹中包含的文件时,我可以通过 IntelliJ 和 SmartGit 再次成功提交。我的 IntelliJ 节点配置如下: 在此处输入图像描述

我的假设是 IntelliJ 和 SmartGit 使用这个错误填充的.nvmrc文件中指定的 nvm 版本。我对节点版本管理——或者事实上节点本身——不是很熟悉——所以我可能会问以下问题来解释这种不一致:

  • 文件是如何.nvmrc创建的?在哪个阶段,什么定义了它的内容?
  • 除了nvm ls- 我想知道一些过时的节点版本是否会驱动.nvmrc这个超级旧的6.14.2版本的人口之外,还有其他方法可以识别我机器上的所有可用节点版本。

编辑:这是我的节点解释器列表 在此处输入图像描述

这是我的 PATH 的内容,因为这在 IntelliJ 中已解决

我在 Ubuntu 18.10 上运行它

0 投票
1 回答
1356 浏览

node.js - 提交时如何获得 git commit 消息?

提交时如何获得 git commit 消息?我用哈士奇。

我已经尝试在准备提交消息时获取提交消息。

打包

推文-git/index.js

标准输出将未定义。请帮忙,谢谢

0 投票
1 回答
101 浏览

git - 带条件的 Git 预推送配置

我们的项目目录中有项目的服务器和客户端部分。

结构看起来像

在项目中,我们使用 husky 库启用了 git pre-push 脚本。pre-push 脚本仅运行 react_ui 文件夹中的 package.json 脚本,包括 linting、测试等。

问题是脚本在每次推送到服务器时都会运行,即使只更改了 java_server 文件。

所以问。只有在 react_ui/ 中的文件发生更改时,我才能以它运行的方式配置预推送挂钩吗?

0 投票
1 回答
5421 浏览

javascript - 手动运行一个 husky git 钩子(不使用 git 命令触发它)

我正在设置一个节点项目,husky并且我希望手动运行一个 git-hook 脚本,而不必在 git 中触发它。

例子:

我的 package.json 有以下内容:

如果我运行npm run precommit,则lint-staged挂钩步骤会运行,提交实际上不会发生在 git 中。

这可能吗?

0 投票
0 回答
167 浏览

reactjs - 如何使用 husky precommit 捕获未使用的变量

在我的 react/typescript 项目中,我对 tslint 使用了 no-unused-variable规则。因此,如果没有未使用的变量或导入,它将阻止提交。现在它说,它已被弃用并在 tsconfig 文件中使用noUnusedLocals和 **noUnusedParameters* 。

我是这样用的。

}

现在未使用的变量被突出显示为警告,但预提交无法捕获它们。

我怎样才能解决这个问题?