2013-01-08 7 views
12

Ich verwende grunt-contrib-uglify Plugin in meinem grunt 0.4.Wie spezifiziert man mehrere Quellkarten in der Uglify-Grunt-Aufgabe?

Ich habe folgende Aufgabe:

uglify: { 
    dist: { 
    options: { 
     sourceMap: 'dist/sm/sm.js' 
    }, 
    files: grunt.file.expandMapping(['*.js'], 'dist/js', { 
     cwd: 'dist/js' 
    }) 
    } 
}, 

Wie Sie sehen können, verunstalten so konfiguriert ist, um mehrere Dateien zu komprimieren, und es gibt nur eine Quelle-Karte angegeben. (Ich bin nicht in der Lage, eine Möglichkeit zu finden, mehrere Quellkartenausgaben anzugeben).

Außerdem überschreibt uglify die soucemap nach dem Komprimieren jeder js-Datei.

Wie konfiguriere ich dieses Plugin, um die vollständigen Quellkarten für alle meine js-Dateien auszugeben?

Antwort

11

Sie können die Funktion auf sourceMap einstellen.

uglify: { 
    options: { 
     sourceMap: function(path) { return path.replace(/.js/,".map")} 
    }, 
    ..... 
+3

'sourceMap: function (Pfad) {return path.replace (./Js/$ "js.map.")}' –

2

In der v0.4.0 Version ist sourceMapBoolean Wert. Verwenden Sie dynamisches Build, um mehrere sourceMap mit mehreren .min.js Dateien zu erstellen.

uglify: { 
    options: { 
    sourceMap: true 
    }, 
    build: { 
    files: [{ 
     expand: true, 
     cwd: 'src/', 
     src: '*.js', 
     dest: 'build/', 
     ext: '.min.js', 
     extDot: 'first' 
    }] 
    } 
} 
0
options: { 
    beautify: false, 
    banner: 'lorem ipsum', 
    mangle: false, 
    sourceMap: true, 
    compress: { 
    conditionals: true, 
    booleans: true, 
    unused: true, 
    sequences: true, 
    dead_code: true, 
    if_return: true, 
    join_vars: true, 
    drop_console: true 
    } 
}, 
min: { 
    files: [{ 
    expand: true, 
    cwd: '<%= config.destination.js %>', 
    src: ['**/*.js', '!**/*.min.js'], 
    dest: '<%= config.destination.js %>', 
    ext: '.min.js' 
    }] 
}