Use gruntjs as precommit hook

青春壹個敷衍的年華 提交于 2019-12-12 07:49:04

问题


Is there a way to run a gruntjs task as precommit hook. For example I want do prevent commits with failing tests or jshint issues. I've also think about to run a code beautifier for every commit.


回答1:


Git hooks are just scripts executed when you do an action like commit. They can contain whatever programming language you'd like.

Example of triggering grunt:

#!/bin/sh
grunt

Save this in the file: .git/hooks/pre-commit

If grunt exits with an error code higher than 0, which it does if any task fail, it will prevent the commit:

Exiting non-zero from this hook aborts the commit


Reading material: Tips for using a git pre-commit hook

And the git docs: 8.3 Customizing Git - Git Hooks

Like many other Version Control Systems, Git has a way to fire off custom scripts when certain important actions occur.




回答2:


I recently had the same issue and detailed a more comprehensive Grunt solution on http://viget.com/extend/grunt-getting-started-with-git-hooks




回答3:


I think you should check out grunt-githooks, a nice Grunt plugin that does all the magic for you and lets you easily register Grunt tasks for certain hooks from within your Gruntfile.js, such as:

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

(Taken from the docs at https://github.com/wecodemore/grunt-githooks#defining-a-few-hooks)

Find the module on npm here.



来源:https://stackoverflow.com/questions/14212939/use-gruntjs-as-precommit-hook

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!