27

JS dosyalarını bir dosyaya birleştirmek ve JavaScript'i en aza indirgemek için uglify kullanıyorum. Kaynak JS dosyalarını kullanan bir sourcemaps dosyası nasıl oluşturabilirim?Sourcemaps ile Grunt concat + uglif

Bulunduğum gruntfile: grunt-contrib-uglify docs Başına

concat: { 
    options: { 
     // define a string to put between each file in the concatenated output 
     separator: ';' 
    }, 
    dist: { 
     // the files to concatenate 
     src: ['<%= config.src %>/js/**/*.js'], 
     // the location of the resulting JS file 
     dest: '<%= config.dist %>/js/main.js' 
    } 
}, 

uglify: { 
    dist: { 
     files: { 
      '<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>'] 
     } 
    } 
}, 

cevap

48

ve çirkinleştirmek görev için sourceMapIn seçeneği belirtmelisiniz.

Aşağıda örnek bir hırıltı yapılandırma var:

concat : { 
    options : { 
    sourceMap :true 
    }, 
    dist : { 
    src : ['www/js/**/*.js'], 
    dest : '.tmp/main.js' 
    } 
}, 
uglify : { 
    options : { 
    sourceMap : true, 
    sourceMapIncludeSources : true, 
    sourceMapIn : '.tmp/main.js.map' 
    }, 
    dist : { 
    src : '<%= concat.dist.dest %>', 
    dest : 'www/main.min.js' 
    } 
} 
Ben sadece çirkinleştirmek kullanmak olsaydı çalışıyor
+0

Bu yanıt, benzer bir gereksinimin giderilmesine yardımcı oluyor (kaynak gereksinimini tek tek gereken modüllere aktarmak için eşleme). Teşekkürler! – jerome

+1

Bu, minimize js (kromun konsol örneğin 290 satırı yerine bir hata için 320 satırını gösterecektir) kullanırken, son haritada yanlış satır numaraları yanlış olması dışında benim için çalışıyor. Bunun neden olduğu hakkında bir fikrin var mı? – Y0lk

+1

Benim durumumda kaynak haritalar üretiliyor ama kullanılamaz. Bir kesme noktası ayarladığımda kod orada durmuyor. Henüz çözülmeyen genel bir uglifyjs problemi gibi görünüyor. – migg

-1

, sen çirkinleştirmek sürecinin bir parçası olarak sourcemap nesil etkinleştirebilirsiniz.

Kişisel çirkinleştirmek yapılandırma benzer görünümde olacaktır: Her iki concat ve uglify görevler üzerinde kaynak haritaları etkinleştirmeniz gerekir

uglify: { 
     dist: { 
      files: { 
       '<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>'] 
      }, 
      options: { 
       sourceMap: true 
     } 
    }, 
+1

ama çirkinleştirmek ve concat hem kullanıyorum. – user3483982