34

我使用 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 %>']
        }
    }
},
4

2 回答 2

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'
  }
}
于 2014-10-23T11:41:33.477 回答
-1

根据grunt-contrib- uglify 文档,您可以在 uglify 过程中启用源映射生成。

你的 uglify 配置看起来像:

uglify: {
        dist: {
            files: {
                '<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>']
            },
            options: {
                sourceMap: true
        }
    },
于 2014-10-06T12:15:09.763 回答