预提交钩子即使在失败后也不会触发

时间:2019-08-01 17:44:11

标签: javascript reactjs git eslint husky

"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"
}

enter image description here

即使皮棉失败,代码也会被提交。如何预防呢?

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

2 个答案:

答案 0 :(得分:-1)

可以肯定的是,您安装了其中的任何一个吗?

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

如果没有,我想您的皮棉故障将被忽略。

答案 1 :(得分:-1)

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

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

测试脚本命令已保留:

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

  

如下所示为预提交和预推送添加沙哑:

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

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

enter image description here

.eslintrc配置如下:

{
  "settings": {
    "react": {
      "version": "latest"
    }
  },
  "parser": "babel-eslint",
  "extends": ["plugin:react/recommended", 
              "eslint:recommended", 
              "plugin:prettier/recommended"],
  "env": {
    "browser": true,
    "node": true,
    "jest": true
  }
}