2016-04-16 3 views
2

Ich habe ein Grunt-Projekt und ich verwende Sass und Jade zusammen. Ich möchte eine Aufgabe für Hass haben, wenn ich entwickle, wo der Stil für die Fehlersuche erweitert wird, und eine Aufgabe, wenn ich das Projekt "beende" und dann der Stil komprimiert wird. Ich bin neu zu grunzen und weiß nicht, wie ich es machen soll.Verschiedene Grunt Aufgaben für Watch und Sass

Mein gruntfile

module.exports = function(grunt) { 
    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 

     jade: { 
      compile: { 
       options: { 
        pretty: true, 
        nospawn: false 
       }, 

       files: { 
        'index.html' : 'src/index.jade' 
       } 
      } 
     }, 

     sass: { 
      dist: { 
       options: { 
        style: 'expanded', 
        nospawn: false 
       }, 

       files: { 
        'build/css/app.css' : 'src/sass/app.sass' 
       } 
      } 
     }, 

     watch: { 
      jade: { 
       files: 'src/**/*.jade', 
       tasks: ['jade'] 
      }, 

      css: { 
       files: 'src/sass/**/*.sass', 
       tasks: ['sass'] 
      }, 

      options: { 
       livereload: true, 
       nospawn: false 
      } 
     }, 

     connect: { 
      server: { 
       options: { 
        port: 9000, 
        base: '.', 
        hostname: '0.0.0.0', 
        protocol: 'http', 
        livereload: true, 
        open: true 
       } 
      } 
     } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-jade'); 
    grunt.loadNpmTasks('grunt-contrib-sass'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-contrib-connect'); 

    grunt.registerTask('default', ['connect', 'watch']); 
}; 

Antwort

2

CSS komprimiert zu bekommen statt erweitert, würden Sie zuerst einen anderen Sass-Aufgabe machen müssen (so innerhalb sass:{}), nennen es finish: zum Beispiel und die Einstellung Kompression ändern.

Es sollte wie folgt aussehen:

finish: { 
    options: { 
      style: 'compressed', 
      nospawn: false 
      }, 

    files: { 
      'build/css/app.css' : 'src/sass/app.sass' 
      } 
} 

Dann nach grunt.registerTask('default', ['connect', 'watch']); können Sie eine weitere Aufgabe hinzufügen, dh fertig stellen, die sollte: grunt.registerTask('finish', ['sass:finish']);

Um es auszuführen, würden Sie grunt finish in der Befehlszeile eingeben.

+0

Das ist es nicht. Ich möchte etwas wie eine Grunzer-Produktion machen, bei der der Sass erweitert wird und grunzen endet, wo der Sass komprimiert wird. –

+0

Also sollte ich es so machen: sass_fin: {dist: {Optionen: {Stil: komprimiert .......}}}? –

+0

Aktualisiere meine Antwort noch einmal:/ – mchaste