【问题标题】:Husky with lint-staged is keep on running forever for the failure cases带有 lint-staged 的​​ Husky 会在失败案例中永远运行
【发布时间】:2023-01-29 01:14:48
【问题描述】:

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

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 继续运行。

这里有什么问题?

【问题讨论】:

    标签: git nest husky lint-staged


    【解决方案1】:

    明白了这个问题。

    请参考lintstaged help

    默认情况下,它会并行启动任务。 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
    

    就这样。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 2020-08-18
      • 2022-08-21
      • 2021-06-11
      • 2019-01-15
      • 2019-08-22
      • 2021-05-12
      • 2021-03-02
      相关资源
      最近更新 更多