9

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

4

3 回答 3

9

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

触发咕噜声的例子:

#!/bin/sh
grunt

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

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

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


阅读材料:使用 git 预提交钩子的技巧

还有 git 文档:8.3 自定义 Git - Git Hooks

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

于 2013-01-08T20:48:35.937 回答
5

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

于 2013-09-19T14:03:01.470 回答
2

我认为你应该看看grunt-githooks,这是一个很好的 Grunt 插件,它为你做了所有的魔法,让你可以轻松地从你的Gruntfile.js.

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 上的模块。

于 2014-06-27T13:28:45.653 回答