2013-03-06 3 views
5

Sto cercando di usare grunt all'interno della mia applicazione express.grunt.task.run() non funziona

ho qualcosa di simile a questo:

var grunt = require('grunt'); 
require(process.cwd() + '/gruntfile.js')(grunt); 
grunt.task.run('development'); 

Ma il compito sembra che non è wokring. (nessun errore viene emesso sulla console) Ma se eseguo direttamente nella console "sviluppo grunt" funziona perfettamente.

risposta

7

grunt.task.run aggiunge semplicemente un'attività alla coda, quindi funziona all'interno di un'attività esistente, ma non all'interno di uno script esterno. Ecco una tecnica semplice che ho preso in prestito da grunt/lib/grunt/cli.js. Attenzione: non fa parte di the official API. Grunt issue 687 rileva la necessità di un'API ufficiale per questa funzionalità.

var grunt = require('grunt'); 
process.chdir(__dirname); 
var config = require('./Gruntfile'); 
config(grunt); 
console.log('Minifying...'); 
grunt.tasks(['cssmin']); 
+1

Funziona alla grande, grazie per la condivisione! –

+0

Brillante! Ora non ho bisogno di installare grunt-cli! – laike9m

+0

Come posso passare ulteriori parametri grunt come --force o --verbose in questo scenario? – Ozil