2016-04-22 7 views
0

Webサーバー上でWebアプリケーションのデプロイを自動化するGruntタスクがあります。私のウェブサーバ上で 私は3つのパスありますグランタのタスクでデプロイメントパスを提案する

  • /www /のて、myApp(生産)
  • /www /のmyApp_rc

を私はpackage.jsonファイル

{ 
... 
    "ftpDeployPath":"myApp_rc" //or /www/myApp 
... 
} 

を持っており、これは私の仕事

{'ftp-deploy': { 
       toMyServer: { 
        auth: { 
         host: '10.7.88.87', 
         port: 21, 
         authKey: 'key1' 
        }, 

        src: 'deploy', 
        dest: '<%= pkg.ftpDeployPath %>', 
        forceVerbose: true 
       } 
      } 

}

私は、私がチェックし、最終的にpackage.jsonファイルを編集する必要が毎回展開する場合。 正しい展開パスを選択できるようにプロンプ​​トを表示する方法はありますか?

答えて

1

おそらくgrunt-promptタスクを「入力」質問タイプで、「ftpDeployPath」を「設定」として試してみることができます。または、コマンドラインオプション(http://gruntjs.com/frequently-asked-questions#dynamic-alias-tasks)を使用してWebStorm(設定|ツール|外部ツール)から外部ツールとしてタスクを実行するようにgruntfileを修正する - ツールパラメータに$ Prompt $ macroを追加して、ツール

0

コマンドライン引数とカスタムタスクの組み合わせを使用すると、タスクを実行する前にタスクの構成を変更できます。最初にdistのテンプレート文字列を変更してみましょう。呼ばれるgrunt.option()のparamにアクセスするためにそれを変更deployPath当社のカスタムタスクが設定されます:

grunt.initConfig({ 
    'ftp-deploy': { 
     toMyServer: { 
      auth: { 
       host: '10.7.88.87', 
       port: 21, 
       authKey: 'key1' 
      }, 
      src: 'deploy', 
      dest: '<%= grunt.option('deployPath') %>', 
      forceVerbose: true 
     } 
    } 
}); 

次に、grunt.option('deployPath')パラメータを設定するカスタムタスクを作ります。以下のタスクでは、grunt deploy:prodを実行すると、deployPathがmyAppに設定されます。 grunt deployを実行すると、パスはmyApp_rcに設定されます。パスが選択されると、カスタムはftp-deployタスクを呼び出します。

function deployTask(grunt) { 
    var deployPath = (this.args[0] === 'prod') ? 'myApp' : 'myApp_rc'; 
    grunt.option('deployPath', deployPath); 
    grunt.task.run('ftp-deploy'); 
} 

grunt.registerTask('deploy', deployTask); 
関連する問題