问题标签 [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.
jestjs - 没有找到测试用例 Jest
我在lint-staged
插件方面遇到了一个奇怪的问题。它之前工作正常。
所以问题是当我运行npm run test
它时会生成覆盖率报告。
"test": "cross-env CI=true react-scripts test --coverage",
但是当我使用husky
pre-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
它工作正常时才会发生这种情况。
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
,即,当我们处于合并状态时它应该出错。我怎样才能在一个简单的命令中做到这一点?
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 绕过)
git-husky - 为什么 lint-staged 使用我的配置在未暂存的文件上运行?
我在我的 package.json 文件中设置了 husky 和 lint-staged 并且它运行,但在所有文件上运行,而我希望它只在暂存文件上运行。
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
似乎从第一个项目开始,如果它没有找到该文件,它就会出错。
eslint - 在暂存文件上运行 eslint "ONLY"
我正在尝试使用预提交挂钩在提交发生之前检测 eslint 错误。我正在使用 husky 和 lint-staged。但它对 src 中的所有文件运行 lint 命令,而不是仅对暂存文件运行。这是我的 package.json 文件。
有什么办法让它只适用于暂存文件而不适用于目录中存在的其他文件?
tsc - 如何在 lerna monorepo 中使用 lint-staged 在所有包中运行相同的命令?
我有以下根 package.json:
问题是使用此设置,当我仍在处理文件时我无法提交,要解决此问题,我可以使用 lint-staged 模块,我的问题是,如何设置它以便我目前拥有的命令仍然运行但仅在暂存文件上运行,而不在每个项目中安装命令的所有依赖项?测试命令也可能是一个问题,因为它tsc --noEmit
在每个项目中运行,我可以强制它只检查暂存文件吗?
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 代码?
node.js - 如何纠正 lint-staged 问题?
尽管配置文件(如下),我在尝试扫描 'src/**' 目录之外的文件时遇到错误。在控制台中运行 eslint 不会显示相同的错误(仅显示警告)。考虑到 lint-staged 是通过 Husky 调用的,我无法在没有 --no-verify 的情况下提交我的代码。
任何想法如何解决它?
.lintstagedrc.json
运行 lint-staged 时出错:
在 src 目录之外的文件中没有错误: