2013-08-26 32 views
49

SfondoCome ignorare i file grugnito uglify

Ho appena iniziato a utilizzare grugnito come di circa 30 minuti fa. Quindi portami con me.

Ma ho uno script piuttosto semplice che guarderà il mio js e poi lo comprimerò tutto in un unico file per me.

Codice

"use strict"; 
module.exports = function (grunt) { 

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

    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 
     uglify: { 
      options: { 
       beautify: true, 
       report: 'gzip' 
      }, 
      build: { 
       src: ['docroot/js/*.js', 'docroot/components/pages/*.js', 'docroot/components/plugins/*.js'], 
       dest: 'docroot/js/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...'); 
       } 
      }, 
      js: { 
       files: '<%= uglify.build.src %>', 
       tasks: ['uglify'] 
      } 
     } 
    }); 

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

} 

Domanda

miei main.min.js è sempre inclusa nella compilazione di volta in volta. Significa che il mio min.js sta ottenendo 2x, 4x, 8x, 16x ecc. Il modo migliore per aggirare questo è aggiungere un'eccezione e ignorare main.min.js?

risposta

112

Alla fine dell'array src, aggiungere

'!docroot/js/main.min.js' 

Ciò escluderlo. Il ! lo trasforma in un'esclusione.

http://gruntjs.com/api/grunt.file#grunt.file.expand

percorsi corrispondenti modelli che iniziano con! sarà escluso dall'array restituito. I pattern vengono elaborati in ordine, pertanto l'inclusione e l'ordine di esclusione sono significativi.

Questo non è specifico per grunt uglify, ma qualsiasi operazione che utilizza la convenzione di grunt per specificare i file funzionerà in questo modo.

Come consiglio generale, suggerirei di mettere i file creati da qualche altra parte rispetto ai file sorgente. Come in una cartella radice dist.

+0

grazie mille, l'avevo pensato così. Ma ancora, buono a sapersi :) –

+1

volevo solo sottolineare l'importanza di ** fine ** bit ancora una volta – tarikakyol

+0

Fine qui è molto importante. Concordato @trkaky – Ozil

Problemi correlati