簡體   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