【问题标题】:Use gruntjs as precommit hook使用 gruntjs 作为预提交钩子
【发布时间】:2012-12-22 04:26:37
【问题描述】:

有没有办法将 gruntjs 任务作为 precommit 钩子运行。例如,我想防止测试失败或 jshint 问题的提交。我还考虑为每次提交运行代码美化器。

【问题讨论】:

  • 是的;但你需要运行它的机器上的节点。

标签: git gruntjs pre-commit-hook


【解决方案1】:

Git 挂钩只是在您执行诸如提交之类的操作时执行的脚本。它们可以包含您喜欢的任何编程语言。

触发咕噜声的例子:

#!/bin/sh
grunt

将此保存在文件中:.git/hooks/pre-commit

如果 grunt 以高于 0 的错误代码退出,如果任何任务失败,它将阻止提交:

从这个钩子中退出非零会中止提交


阅读材料:Tips for using a git pre-commit hook

还有 git 文档:8.3 Customizing Git - Git Hooks

与许多其他版本控制系统一样,Git 有一种方法可以在发生某些重要操作时触发自定义脚本。

【讨论】:

  • 不要忘记在你的预提交文件上执行 chmod +x
【解决方案2】:

我最近遇到了同样的问题,并在 http://viget.com/extend/grunt-getting-started-with-git-hooks 上详细介绍了更全面的 Grunt 解决方案

【讨论】:

  • 这正是我想要的
  • 您现在也可以使用 Husky 轻松完成此操作(无需 Grunt,如果您愿意):github.com/typicode/husky
【解决方案3】:

我认为您应该查看grunt-githooks,这是一个不错的 Grunt 插件,它为您完成所有魔法,并让您可以轻松地从您的 Gruntfile.js 中为某些挂钩注册 Grunt 任务,例如:

grunt.initConfig({
  githooks: {
    all: {
      // Will run the jshint and test:unit tasks at every commit
      'pre-commit': 'jshint test:unit',
    }
  }
});

(取自 https://github.com/wecodemore/grunt-githooks#defining-a-few-hooks 的文档)

在 npm here 上找到模块。

【讨论】:

    猜你喜欢
    • 2021-03-01
    • 1970-01-01
    • 2013-12-15
    • 2017-02-08
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    相关资源
    最近更新 更多