50

新しい grunt タスクを作成しました。その中で grunt-contrib-concat を使用していくつかのファイルを連結したいと考えています。

ドキュメントを調べましたが、これができることを示唆するものは何も見つかりません。些細なユースケースのように思えるので、おそらく何かを見過ぎているだけです。

更新 1:

また、カスタム タスク内からこのタスクを構成できるようにしたいと考えています。

たとえば、カスタム タスクでファイルのリストを作成します。そのリストを取得したら、それらを concat タスクに渡したいと思います。どうやってやるの?

このようなことができるようになりたいと思います。

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

更新 2:

私が望むものを達成するには、手動で grunt タスクを構成する必要があります。これが私が望んでいたことを示した例です。

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

4

5 に答える 5

34

これは、タスク内でタスクを手動で構成してから実行する例です。

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');
    });
于 2013-03-08T17:47:53.213 に答える
27

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']);
});
于 2013-03-08T00:36:28.803 に答える
11

彼自身の質問に対して正しい方向に私たちを指摘してくれた Arron に感謝します。grunt.config は、上記の例のキーです。このタスクは、browserify タスクの src プロパティをオーバーライドします

タスク定義:

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

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

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

  }); 

タスク呼び出し:

grunt tests

また

grunt tests:somewhere/specPath.js
于 2014-03-18T10:42:09.310 に答える
0

あなたが怠け者だと感じているなら、あなたのタスクからあなたが実行したいサブタスクに構成を転送するnpmモジュールを公開することになりました:

https://www.npmjs.org/package/extend-grunt-plugin

于 2014-07-25T17:45:50.527 に答える