首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在tslint中添加git prehook?

如何在tslint中添加git prehook?
EN

Stack Overflow用户
提问于 2018-07-03 02:32:46
回答 3查看 8.1K关注 0票数 2

我正在尝试添加预钩,如果有任何代码失败的问题,commit.what是实现它的正确方法。

tslint.sh

代码语言:javascript
复制
#!/bin/sh
sh ./npm-install.sh
if [ $? -ne 0 ]; then
  echo "npm-install error, exiting.."
  exit 1
fi
echo "Running ts lint"
npm run lint
if [ $? -ne 0 ]; then
  echo "Unit tests error, exiting.."
  exit 1
fi
EN

回答 3

Stack Overflow用户

发布于 2018-07-03 14:27:20

我有一个成功的经验来实现这一点:

  1. husky tslint指定git hook
  2. lint-staged =>在git中运行暂存文件的命令(因此不需要对所有文件运行
    1. husky)

参考资料:

  1. https://github.com/okonet/lint-staged
  2. https://www.npmjs.com/package/husky

package.json中,在husky字段中指定lint-stagedpre-commit

代码语言:javascript
复制
"dependencies": ...,
"devDependencies": ...,
"scripts" ...,
"husky": {
    "hooks": {
        "pre-commit": "lint-staged"
    }
},
"lint-staged": {
    "*.ts": [ // target to all typescript files in staged stage in git
      "npm run lint", // your lint command
      "git add"   
    ]
}
票数 10
EN

Stack Overflow用户

发布于 2018-07-03 04:51:11

这里有一种方法:https://www.npmjs.com/package/pre-commit

预提交是git的一个预提交钩子安装程序。它将确保您的npm测试(或其他指定的脚本)通过后,您才能提交更改。这些都在您的package.json中方便地进行了配置。

票数 3
EN

Stack Overflow用户

发布于 2018-07-03 13:45:13

package.json:

代码语言:javascript
复制
{
  "name": "app name",
  "version": "0.1.0",
  "license": "MIT",
  "author": "author",
  "contributors": [

  ],
  "description": "...",
  "scripts": {
    "ng": "ng",
    "precommit": "lint-staged"
  },
  ...,
  "lint-staged": {
    "*.{ts,js,sccs,json}": [
      "ng lint app-name --fix",
      "./node_modules/.bin/prettier --write",
      "git add"
    ]
  },
  "dependencies": {
    ...
  },
  "devDependencies": {
    ...
    "lint-staged": "^7.2.0",
    "prettier": "^1.13.5",
    "ts-node": "^6.1.2",
    "tslint": "^5.10.0",
    "typescript": "2.7.2"
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51141949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档