2013-08-27 12 views
5

Naprawdę chciałbym mieć plik rozwojowy i używać tego samego pliku wersji produkcyjnej skryptu.Alternatywne zadania grunt.js dla środowisk programistycznych/produkcyjnych

Próbowałem sugestii na SO, ale mój skrypt po prostu nie powiedzie się, gdy próbuje wywołać argument dev/prod. Wierzę, że odpowiedź dotyczy starszej wersji pomruku, a może wtyczek, których używam.

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'); 
}; 

Naprawdę, tak długo, jak mogę dostać dwie wersje uruchomiony przez wywołanie ich, na przykład:

grunt //local 
grunt prod //live 

wtedy mogę bawić z skryptów i co do załadowania.

+1

myślę co szukasz to „opcja” - https://github.com/gruntjs/grunt/wiki/grunt.option - Uważam, że nadal jest to poprawna metoda. Również sprawdź, czy masz tak czystą konfigurację ze wszystkimi przydatnymi elementami tej układanki. Wszystko, co będziesz musiał zapamiętać, to cholerny serwer i pomrukiwanie. – Dylan

Odpowiedz

14

Można też po prostu zarejestrować zadanie, które wywołuje szereg zadań

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

przed domyślnego zadania, które byłyby

$ grunt prod 
+0

niesamowite dzięki Dylan, muszę się nad tym zastanowić. Czy jest szansa, że ​​chcesz dać mi wyraźny przykład? –

+0

Świetnie, muszę przyznać, że nie dostałem tego, póki nie pozwoliłem, by wyhodował magii, a potem spojrzał na teczkę. Więc dzięki za wskazanie mnie na rzecznika. i registerTask. Znakomity. –

+0

dzięki za prod, aby dostać się na pokład z Yeomanem, odkładałem na później;) –

Powiązane problemy