问题标签 [lint-staged]

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 回答
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 投票
2 回答
2902 浏览

git - 为什么在取消 git 提交后我的更改消失了,如何恢复它们?

这是我所做的:

  1. 编码 8 小时的更改。
  2. git status显示我的所有更改。
  3. git add -A
  4. git commit -m "Foo". 预提交 git 钩子使用huskyand触发lint-staged
  5. 我记得有一个我未能修复的 TypeScript 输入错误,所以我按 Ctrl+C 取消。
  6. 心不在焉,我又跑git commit -m "Foo"了一次,立即取消。
  7. 变化消失了!文件被还原,git status干净,git log并且git reflog不显示新的提交。

为什么我的更改被还原了?我该如何恢复它们?

第1步 第2步

0 投票
2 回答
2565 浏览

git - 修复合并冲突后如何绕过预提交挂钩?

TLDR:git rev-parse -q --verify MERGE_HEAD不处于合并状态时出错。当我们处于合并状态时,如何获得类似的命令会出错?


问题:当我将 master 合并到我的分支中并且它有冲突时,我必须手动更正它们,然后提交。但在某些情况下,我有太多来自 master 的更改,所以我宁愿跳过 pre-commit 钩子。

部分解决方案:我可以运行git commit --no-verify并合并,但那是因为我知道标志。其他开发人员可能不知道,因此(1)他们花费了比需要更多的时间等待预提交挂钩运行和(2)因为它可能需要太长时间,他们往往不太可能重新合并 master(假设) .

几乎确定的解决方案:我找到了一种方法来检测我是否处于合并状态,方法是使用git rev-parse -q --verify MERGE_HEAD. 它在合并状态时返回一个哈希值,在非合并状态时出错。但我需要的恰恰相反。当我处于合并状态时,我需要它出错,所以我可以将它作为预提交钩子添加到我的所有钩子中。这会使它们在第一行失败,然后不执行以下命令。

请注意,上面提到的不起作用。为了让它工作,我们只需要从 反转效果git rev-parse -q --verify MERGE_HEAD,即,当我们处于合并状态时它应该出错。我怎样才能在一个简单的命令中做到这一点?

0 投票
1 回答
1306 浏览

jquery - Husky 和 ​​lint-staged 无法运行 gulp 命令

我正在尝试从 package.json 运行 gulp 命令。但无法执行。

这是我的 package.json。

npm run lint 工作正常。

这里 gulp locale-sass 不起作用。

✖ gulp locale-sass && npm run lint:任务从未定义:&&

列出可用任务,尝试运行: gulp --tasks

使用 gulpfile /u02/home/user01/drupal/drupal-7.9/sites/medic/gulpfile.js

husky > pre-commit hook 失败(添加 --no-verify 绕过)

0 投票
1 回答
475 浏览

git-husky - 为什么 lint-staged 使用我的配置在未暂存的文件上运行?

我在我的 package.json 文件中设置了 husky 和 ​​lint-staged 并且它运行,但在所有文件上运行,而我希望它只在暂存文件上运行。

0 投票
1 回答
527 浏览

angular - Angular monorepo 中的 lint-staged

我正在尝试lint-staged使用我的 Angular monorepo 工作区进行设置,但是我无法使其工作。当ng lint --files使用更改的文件执行时,它会出错*file* is not part of a TypeScript project。如果我运行ng lint <project> --files它可以工作。Angular 是否可以使用来自 的文件对所有项目进行 lint lint-staged

我只需要对更改的部分进行 linting,但我不知道如何实现这一点。

我在 中没有默认项目angular.json,但是ng lint似乎从第一个项目开始,如果它没有找到该文件,它就会出错。

0 投票
4 回答
11369 浏览

eslint - 在暂存文件上运行 eslint "ONLY"

我正在尝试使用预提交挂钩在提交发生之前检测 eslint 错误。我正在使用 husky 和 ​​lint-staged。但它对 src 中的所有文件运行 lint 命令,而不是仅对暂存文件运行。这是我的 package.json 文件。

有什么办法让它只适用于暂存文件而不适用于目录中存在的其他文件?

0 投票
2 回答
6638 浏览

tsc - 如何在 lerna monorepo 中使用 lint-staged 在所有包中运行相同的命令?

我有以下根 package.json:

问题是使用此设置,当我仍在处理文件时我无法提交,要解决此问题,我可以使用 lint-staged 模块,我的问题是,如何设置它以便我目前拥有的命令仍然运行但仅在暂存文件上运行,而不在每个项目中安装命令的所有依赖项?测试命令也可能是一个问题,因为它tsc --noEmit在每个项目中运行,我可以强制它只检查暂存文件吗?

0 投票
1 回答
382 浏览

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 代码?

0 投票
1 回答
1293 浏览

node.js - 如何纠正 lint-staged 问题?

尽管配置文件(如下),我在尝试扫描 'src/**' 目录之外的文件时遇到错误。在控制台中运行 eslint 不会显示相同的错误(仅显示警告)。考虑到 lint-staged 是通过 Husky 调用的,我无法在没有 --no-verify 的情况下提交我的代码。

任何想法如何解决它?

.lintstagedrc.json

运行 lint-staged 时出错:

在 src 目录之外的文件中没有错误: