2013-03-08 9 views
47

Stworzyłem nowe zadanie pomruczeń, a w jego ramach chcę użyć polecenia contort-concat, aby połączyć kilka plików razem.Jak uruchomić zadanie pomruczeń w ramach zadania pomruczania?

Przeglądałem dokumenty, ale nie znalazłem niczego, co by sugerowało, że jest w stanie to zrobić. Wydaje się, że jest to trywialny przypadek użycia, więc pewnie już nad czymś szukam.

Aktualizacja 1:

Chcę również, aby móc skonfigurować to zadanie od wewnątrz mojego niestandardowego zadania.

Na przykład tworzę listę plików w moim niestandardowym zadaniu. Po tym liście chcę przekazać je do zadania concat. Jak mogę to zrobić?

Chciałbym móc zrobić coś takiego.

grunt.task.run('concat', { src: ['file1','file2'], dest: 'out.js'}) 

Aktualizacja 2:

Aby osiągnąć to, co chcę, muszę ręcznie skonfigurować zadanie grunt. Oto przykład, który pokazał mi, czego chciałem.

https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130

+9

Powyższy link do github jest martwy. – moliveira

+0

Może się okazać, że jest to przydatne: http://stackoverflow.com/questions/28847471/grunt-how-to-build-the-files-object-dynamically/29244332#29244332 – almeidap

Odpowiedz

25

Od https://github.com/gruntjs/grunt/wiki/Creating-tasks

grunt.registerTask('foo', 'My "foo" task.', function() { 
    // Enqueue "bar" and "baz" tasks, to run after "foo" finishes, in-order. 
    grunt.task.run('bar', 'baz'); 
    // Or: 
    grunt.task.run(['bar', 'baz']); 
}); 
+0

Proszę zobaczyć moją edycję. Dodałem szczegóły dotyczące tego, jak chcę użyć konkata z mojego zadania. –

+1

Czy to działa, jeśli zadanie wymaga opcji? – phtrivier

+1

prawdopodobnie musisz skonfigurować zadania, takie jak odpowiedź @ArronS. –

34

Oto przykład ręcznego konfigurowania zadania w ramach zadania, a następnie uruchomić go.

https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130

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'); 
    }); 
10

Thx do Arron że wskazał nam w dobrym kierunku, aby na własne pytanie. Plik grunt.config jest kluczem z powyższego przykładu. Zadanie to będzie zastąpić właściwość src z browserify zadania

definicja Zadanie:

grunt.registerTask('tests', function (spec) { 

    if (spec) { 
     grunt.config('browserify.tests.src', spec); 
    } 

    grunt.task.run(['jshint', 'browserify:tests', 'jasmine']); 

    }); 

wezwanie Zadanie:

grunt tests 

lub

grunt tests:somewhere/specPath.js 
Powiązane problemy