繁体   English   中英

带有 lint-staged 的 Husky 会在失败案例中永远运行

[英]Husky with lint-staged is keep on running forever for the failure cases

在我的项目中,这是项目结构:

client/
.git/
       services/
            nest-services/
               package.json
               apps/
                   app1/
                     ..
                   appn/
// no package.json here under 

nest-services中,我想添加预提交 lint 检查(eslint 仅在 app1 的 Nest TypeScript 代码中——开始)。

通过查看各个地方,我找到了带有“lint-staged”的Husky 我安装了 husky 和 lint-staged 的最新版本。

我在nest-services/package.json中按如下方式设置哈士奇:

    "prepare": "cd ../../ && husky install services/nest-services/.husky"

这是我在nest-services/package.json中的集成:

  "lint:app1": "eslint apps/app1/src --format table",
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "apps/app1/src/**/*.ts": [
      "eslint apps/app1/src --format table"
    ]
  }

还有我的services/nest-services/.husky/pre-submit

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

cd services/nest-services
yarn lint:app1

但是,每当我在修改后的暂存文件中运行它时,肯定的情况都可以正常工作。 但如果出现 lint 故障,它不会停止。 lint-stage继续运行。

在此处输入图像描述

这里有什么问题?

明白了这个问题。

请参考lintstaged 帮助

默认情况下,它会并行启动任务。 不知何故, eslint --format table无法通过lintstaged调度正常工作。 所以我改变

"lint:app1": "eslint apps/app1/src --format table",

经过

"lint:app1": "yarn lint-staged --quiet --concurrent false --config./.lintsagedrc"

所以总的来说我的package.json看起来像:

    "lint:prepare": "cd ../../ && husky install services/nest-services/.husky"
    "lint:app1": "yarn lint-staged --quiet --concurrent false --config ./.lintstagedrc"

简单的!

我的lintstagedrc看起来像:

{
  "apps/app1/(src|test)/**/*.(ts|tsx)": [
    "eslint --format table"
  ]
}

我更新.husky/pre-commit看起来像:

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

yarn --cwd services/nest-services lint:app1

就这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM