Cómo ignorar archivos grunt uglify


Antecedentes

Acabo de empezar a usar grunt desde hace unos 30 minutos. Así que ten paciencia conmigo.

Pero tengo un script bastante simple que mirará mi js y luego lo comprimirá todo en un archivo para mí.

Código

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

}

Pregunta

Mi principal.min.js está siendo incluido en la compilación cada vez. Me refiero a mi min.js está consiguiendo 2x, 4x, 8x, 16x etc etc. ¿La mejor manera de evitar esto es agregar una excepción e ignorar main.min.js?

Author: Ben, 2013-08-27

1 answers

Al final de la matriz src, agregue

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

Esto lo excluirá. El ! lo convierte en una exclusión.

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

Rutas que coinciden con patrones que comienzan con ! se excluirá de la matriz devuelta. Los patrones se procesan en orden, por lo que el orden de inclusión y exclusión es significativo.

Esto no es específico de grunt uglify, sino de cualquier tarea que use la convención de grunt para especificar los archivos funcionarán de esta manera.

Como consejo general, aunque sugeriría poner los archivos construidos en otro lugar que sus archivos de origen. Como en una carpeta raíz dist.

 117
Author: Martin Hansen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-25 13:17:14