0
"scripts": {
   "precommit": "pretty-quick --staged & npm run lint & npm run test",
   "lint": "eslint 'src/**/*.{js,jsx}' --quiet --fix",
   "test": "cross-env CI=true react-scripts test --env=jsdom --coverage"
}

在此处输入图像描述

即使在 lint 失败后,代码也会被提交。如何防止这种情况?

如果我不添加cross-env CI=true,开玩笑的测试用例不会中断。我正在尝试执行干净代码的 linting 和单元测试。

4

2 回答 2

-1

只是为了确定,你安装了这些吗?

您是否尝试过使用&&,例如:"precommit": "pretty-quick --staged && npm run lint && npm run test",

如果没有,我猜你的 lint 失败会被忽略。

于 2019-08-02T14:39:39.913 回答
-2

安装了更漂亮的 eslint 依赖项,例如:

"eslint-config-prettier": "^6.0.0",
"eslint-plugin-prettier": "^3.1.0",

测试脚本命令保留:

"test": "cross-env CI=true react-scripts test --env=jsdom",

为 pre-commit 和 pre-push 添加 husky 如下:

  "husky": {
     "hooks": {
     "pre-commit": "pretty-quick --staged && npm run linttest",
     "pre-push": "npm run linttest"
    }
  }

提交将成功并出现错误,但推送失败。现在这对我来说也很好,这样我的提交就不会被阻止,但我只能将干净的代码推送到 repo。

在此处输入图像描述

.eslintrc 配置如下:

{
  "settings": {
    "react": {
      "version": "latest"
    }
  },
  "parser": "babel-eslint",
  "extends": ["plugin:react/recommended", 
              "eslint:recommended", 
              "plugin:prettier/recommended"],
  "env": {
    "browser": true,
    "node": true,
    "jest": true
  }
}
于 2019-08-02T14:57:57.737 回答