2013-01-08 14 views
8

Esiste un modo per eseguire un'attività gruntjs come hook precommit. Ad esempio, voglio evitare di commettere errori con test o problemi di jshint. Ho anche pensato di eseguire un beautifier di codice per ogni commit.Usa gruntjs come hook precommit

+0

sì; ma hai bisogno di un nodo sulla macchina su cui gira. – forvaidya

risposta

8

Gli hook Git sono solo script eseguiti quando si esegue un'azione come commit. Possono contenere qualsiasi linguaggio di programmazione desideri.

Esempio di grugnito innescando:

#!/bin/sh 
grunt 

Salva questo nel file: .git/hooks/pre-commit

Se grugnito termina con un codice di errore superiore a 0, cosa che fa, se tutta l'operazione fallire, impedisce la commit:

Uscita non nulla da questo gancio interrompe il commit


materiale di lettura: http://codeinthehole.com/writing/tips-for-using-a-git-pre-commit-hook/

E la documentazione git: http://git-scm.com/book/en/Customizing-Git-Git-Hooks

Come molti altri sistemi di controllo versione, Git ha un modo di sparare script personalizzati quando si verificano determinate azioni importanti.

+2

Non dimenticate di fare chmod + x sul vostro file di pre-commit –

2

Penso che si dovrebbe verificare grunt-githooks, un bel plugin Grunt che fa tutta la magia per voi e consente di registrare facilmente Grunt compiti per alcuni ganci da dentro il tuo Gruntfile.js, come ad esempio:

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

(Tratto dalla documentazione a https://github.com/wecodemore/grunt-githooks#defining-a-few-hooks)

Trova il modulo su npm here.