2013-11-21 9 views
19

私はGruntビルドファイルを持っています。Gruntコマンドラインパラメータ

myTask: { 
    options: { 
    configFile: "config/default.js", 
    args: { } 
    }, 
    dev: { 
    configFile: 'config/local.js', 
    options: { args: {} }, 
    }, 
    test: { 
    configFile: 'config/remote.js', 
    options: { args: {} } 
    } 
} 

...

現在
grunt.registerTask('customTask', ['myTask:dev']); 
grunt.registerTask('customTask-Test', ['myTask:test']); 

、私はコマンドラインから次のように実行することができます:

> grunt customTask 

すべての作品を私のビルドファイルには、次のようなタスクを持っています良い。しかし、私はこのような何かを行う能力を追加する必要があります。

> grunt customTask --myParam=myValue 

私は「DEV」タスクターゲットにMYPARAMの値を確認する必要があります。しかし、私はそれを行う方法を把握することはできません。 myTask:devが実行されたときにmyParamの値を表示できるだけであればうれしいです。言い換えれば、 は、私は次のように実行

> grunt customTask 

> grunt customTask --myParam=hello 
You entered hello 

> grunt customTask-Test 

> grunt customTask-Test --myParam=hello 

が、私はこのようなものをどのように行うのですか見てみたいと思いますか?

+1

これは前に回答しました:http://stackoverflow.com/questions/17012102/grunt-command-line- arguments-not-working –

答えて

34

これはすべてgrunt.optionページで説明されています。あなたのケースでは

、あなたがmyParamの値を得ることができます:

var target = grunt.option('myParam'); 
+2

デフォルトの引数の場合、標準のJavaScriptイディオムを使用できます: 'grunt.option( 'myParam')|| 'defaultValue''。 – Claudiu

3

別の方法:あなたはちょうどあなたが通常のノードアプリでできるように、process.argv配列を使用することができます。

もちろん、GruntJSはNodeJS上に構築されています。

私はGruntコマンドライン引数をgrunt-nodemonというNodeプロセスに転送するためにこの手法を使用しました。

1

また、最初&第二引数はnodeコマンドやスクリプト名です

var args = process.argv; 
runScript(args[2], args[3]); 

イサキからのコマンドライン引数を読んTE process.argv配列を使用することができます。

> grunt cssmin --target=my_module 

Gruntfile:

+0

これは私が 'initConfig'で私の監視タスクを呼び出すタスクが異なるかどうかを判断する素晴らしい方法でした。私は、タスクが何であったかに基づいて 'watch'タスクに渡す変数を設定したいと思いますが、' grunt.registerTask'を実行する前に、 'grunt.task.current.name'には何もありません。これを投稿していただきありがとうございます! – Groovetrain

+0

あなたは歓迎です、とにかくこのコメントで誰かを助けてくれてうれしいです –

2

grunt-executeを使用して

execute: { 
    target: { 
     options: { 
     args : [arg1, arg2] 
     }, 
     src: ['script.js'] 
    } 
} 

私は私が私のcss.minは、このコマンドラインを使用して作成したいモジュールを渡すことができ、使用の例を作りました。 js

関連する問題