Grunt concat + uglify与sourcemaps

use*_*982 32 gruntjs source-maps grunt-contrib-concat grunt-contrib-uglify

我使用concat将JS文件合并到一个文件中,并使用uglify来最小化JavaScript.如何创建使用源JS文件的sourcemaps文件?

我目前的gruntfile:

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 %>']
        }
    }
},
Run Code Online (Sandbox Code Playgroud)

小智 56

您需要在concatuglify任务上启用源映射,并且必须sourceMapIn为uglify任务指定选项.

这是一个示例grunt配置:

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'
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 在`sourceMapIn`可以更方便地指定为(上/sf/ask/994558841/为基础):`sourceMapIn:功能(路径){return path +".map"; 这是更通用的,也支持多个源文件. (3认同)