2012-09-11 11 views
8

Grunt usuwa pomocników, co już się zdarzyło w chmurze-contrib.Jak wywoływać zadania z kodu w Grunt, jeśli pomocnicy znikną?

Jednak mam plik Grunt polegający na niektórych niestandardowych zadań wywoływania niektórych z tych pomocników. Bez pomocy pękają. Zastanawiam się tylko, jaki powinien być właściwy sposób na ich zastąpienie.

Rozumiem, że wywołuję zadania bezpośrednio w jakiś sposób, ale nie jestem pewien jak. Przykład bardzo by pomógł, ponieważ dokumentacja Grunt nie jest jeszcze zaktualizowana.

Dzięki.

Odpowiedz

9

Ok po niektóre badania i pomoc opiekunów grunt-contrib, przepisałem to zadanie mam:

grunt.registerMultiTask('multicss', 'Minify CSS files in a folder', function() { 
    grunt.file.expandFiles(this.data).forEach(function(file) { 
     var minified = grunt.helper("mincss", grunt.file.read(file)); 
     grunt.file.write(file, minified); 
     grunt.log.writeln("Minified CSS "+file); 
    }); 
}); 

Do tego:

grunt.registerMultiTask('multicss', 'Minify CSS files in a folder', function() { 
    var count = 0; 
    grunt.file.expandFiles(this.data).forEach(function(file) { 
     var property = 'mincss.css'+count+'.files'; 
     var value = {}; 
     value[file] = file; 
     grunt.config(property, value); 
     grunt.log.writeln("Minifying CSS "+file); 
     count++; 
    }); 
    grunt.task.run('mincss'); 
}); 

Żadna inna zmiana konieczna w config plik. Nowy fragment kodu korzysta z samego zadania zamiast z pomocnika, który zniknął.

To może nie być najlepsze podejście, a Grunt 0.4.0 może ponownie zmienić grę, ale teraz działa z Grnt 0.3.15 i grunt-contrib 0.2.

+1

Jestem także bardzo ciekawa tego pytania i obecnie robię coś podobnego, ale dla mnie wygląda to tak nieefektywnie! Zamiast robić coś takiego jak 'var result = grunt.task.run ('mincss', ['style1.css', 'style2.css', ...])' idziesz i * hakujesz * konfigurację zadania, a następnie uruchamiasz to zwykły sposób. Jeśli planujesz dynamicznie przygotowywać dane do innych zadań, to uważam, że musi być na to lepszy sposób. Czy możesz, jeśli to możliwe, zamieścić link do swojej dyskusji z opiekunami grunt-contrib? –

+0

Znaleziono, tutaj jest link do dyskusji: https://github.com/gruntjs/grunt-contrib/issues/118 –

Powiązane problemy