【发布时间】:2012-12-22 04:26:37
【问题描述】:
有没有办法将 gruntjs 任务作为 precommit 钩子运行。例如,我想防止测试失败或 jshint 问题的提交。我还考虑为每次提交运行代码美化器。
【问题讨论】:
-
是的;但你需要运行它的机器上的节点。
标签: git gruntjs pre-commit-hook
有没有办法将 gruntjs 任务作为 precommit 钩子运行。例如,我想防止测试失败或 jshint 问题的提交。我还考虑为每次提交运行代码美化器。
【问题讨论】:
标签: git gruntjs pre-commit-hook
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 有一种方法可以在发生某些重要操作时触发自定义脚本。
【讨论】:
我最近遇到了同样的问题,并在 http://viget.com/extend/grunt-getting-started-with-git-hooks 上详细介绍了更全面的 Grunt 解决方案
【讨论】:
我认为您应该查看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 上找到模块。
【讨论】: