2012-11-25 12 views
8

grunt.jsファイルに時々現れるネスティングの理解に問題があります。次の例では、concat.distmin.distのような入れ子オブジェクトはどういう意味ですか? distのキーは、別の名前付きタスクを参照していますか、それとも単なる設定オブジェクトですか? concatminのタスクを実行するときに正確に何が呼び出されますか?作男でgrunt.jsファイルでは、ネストされたオブジェクトリテラルはどういう意味ですか?

module.exports = function (grunt) { 
    grunt.initConfig({ 
    // … 
    concat: { 
     dist: { 
     src: ["<banner:meta.banner>", "<file_strip_banner:lib/main.js>"], 
     dest: "dist/main.js", 
     } 
    }, 
    min: { 
     dist: { 
     src: ["<banner:meta.banner>", "<config:concat.dist.dest>"], 
     dest: "dist/main.min.js", 
     } 
    }, 
    // … 
    }); 

    // … 
    grunt.registerTask("default", "lint qunit concat min"); 
}; 

答えて

10

、ネストのこの種をサポートするタスクは、multi tasksと呼ばれ、ネストされたオブジェクトは、ターゲットと呼ばれています。あなたは、次のマルチタスクがあるとします。

concat: { 
    dist: { 
     src: ["<banner:meta.banner>", "<file_strip_banner:lib/main.js>"], 
     dest: "dist/main.js", 
    }, 
    dev: { 
     (...) 
    } 
} 

これは、あなたがその中にターゲットdistのDEVでマルチタスク連結があることを意味します。コンソールにタスクの名前を入力することで、任意のマルチタスクのすべてのターゲットを実行できます。例:

grunt concat 

concatとdevの両方を実行します。一方、あなたはまた、明示的に実行するためにターゲットを指定することができます

grunt concat:dist 

だけdistのターゲットを実行します。

私の知る限りでは、同じ名前(あなたの例のようにmin.distconcat.dist)のターゲットを持つ2つのマルチタスクを持っている場合、これは両方のdistのが何らかの形であることを意味するものではありません同じことを参照すると、彼らはちょうど同じ名前を共有することが起こります。回答の状態と同様に

+0

にVIDをしました。ここには、サブタスクの例として 'dist'と' dev'を使用するマルチタスクがあります – jonschlinkert

+0

guntub上のGruntのドキュメントには、targetという用語が使われています: "タスクの名前を指定するだけで、マルチタスクのすべてのターゲットを実行できます。実行中のgrint lintは自動的にすべてのターゲットを実行します... " – alemangui

+0

興味深いことに、"ターゲット "は正式に文書化しているようですが、サブタスクも説明や例でもよく使われます。特にタスクレポ(SO私が提供したリンクは削除されました)。 2つの用語の区別が意図されているかどうかは分かりますか?ターゲットを記述するための「古い用語」をサブタスクしていましたか?この時点で興味があるだけです。特に、新規ユーザーが混乱する可能性があることを考えると、 – jonschlinkert

0

、それらまたは「マルチターゲット」..私は、私は、「ターゲットは」gruntjsにサブタスクと呼ばれているとして、あなたが参照しているものと考えているマルチタスクhere

関連する問題