2013-08-27 16 views
5

私は本当に開発用ファイルを作って、同じファイルをスクリプトのプロダクションバージョンで使うことができればと思っています。開発/生産環境の代替grunt.jsタスク

私はSOの提案を試みましたが、私のスクリプトはdev/prod引数を呼び出そうとすると失敗するだけです。答えは、古いバージョンのgrunt、またはおそらく私が使用しているプラ​​グインに対するものだと思います。

module.exports = function (grunt) { 

    // load all grunt tasks 
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); 

    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 
     compass: { 
      dev: { 
       options: { 
        config: 'config.rb', 
        force: true, 
        livereload: true 
       } 
      } 
     }, 
     uglify: { 
      build: { 
       src: ['docroot/js/*.js', 'docroot/components/**/*.js'], 
       dest: 'docroot/dis/main.min.js' 
      } 
     }, 
     watch: { 
      options: { 
       dateFormat: function(time) { 
        grunt.log.writeln('The watch finished in ' + time + 'ms at' + (new Date()).toString()); 
        grunt.log.writeln('Waiting for more changes...'); 
       }, 
       livereload: true 
      }, 
      sass: { 
       files: ['docroot/sass/*.scss'], 
       tasks: ['compass:dev'] 
      }, 
      /* watch and see if our javascript files change, or new packages are installed */ 
      js: { 
       files: '<%= uglify.build.src %>', 
       tasks: ['uglify'] 
      }, 
      /* watch our files for change, reload */ 
      livereload: { 
       files: ['*.html', 'docroot/css/*.css', 'docroot/img/*', 'docroot/js/{main.min.js, plugins.min.js}'], 
       options: { 
        livereload: true 
       } 
      } 
     } 
    }); 


    grunt.registerTask('default', 'watch'); 
}; 

本当に、あまりにも長い間、私は例えば、それらを呼び出すことで実行している2つのバージョンを取得することができますよう:
grunt //local 
grunt prod //live 

が、私はスクリプトで遊ぶことができ、何をロードします。

+1

だろう、あなたのデフォルトのタスク、前

grunt.registerTask('prod', ['tasks1','task2']); 

の配列を呼び出すタスクを登録することができます - https://github.com/gruntjs/grunt/wiki/grunt.option - 私はそれが正しい方法だと信じています。 また、このパズルに役立つあらゆる種類の便利な設定を持っているので、あなたはチェックアウトしています。あなたが覚えておかなければならないのは、サーバーとgruntビルドです。 – Dylan

答えて

14

あなたはまた、ちょうど私が何を探していることは、「オプション」であると考えタスク

$ grunt prod 
+0

Dylanに感謝、これを調べる必要があります。あなたが私に明確な例を与えたいと思うことはありますか? –

+0

素晴らしい、私はyeomanにその魔法をさせてからファイルを見せるまで私はそれを得ていないことを認めなければならない。それで、私を汝矣島に向かわせてくれてありがとうおよびregisterTask。ブリリアント。 –

+0

Yeomanと一緒にボードに乗ってくれてありがとう、私は先延ばしだった;) –