Gruntjs 如何在uglify grunt任务中指定多个源映射?

Gruntjs 如何在uglify grunt任务中指定多个源映射?,gruntjs,uglifyjs,Gruntjs,Uglifyjs,我正在我的grunt0.4中使用gruntcontribuglify插件 我有以下任务: uglify: { dist: { options: { sourceMap: 'dist/sm/sm.js' }, files: grunt.file.expandMapping(['*.js'], 'dist/js', { cwd: 'dist/js' }) } }, 如您所见,uglify配置为压缩多个文件,并且只指定了一个源映射。(我

我正在我的
grunt0.4
中使用
gruntcontribuglify
插件

我有以下任务:

uglify: {
  dist: {
    options: {
      sourceMap: 'dist/sm/sm.js'
    },
    files: grunt.file.expandMapping(['*.js'], 'dist/js', {
      cwd: 'dist/js'
    })
  }
},
如您所见,uglify配置为压缩多个文件,并且只指定了一个源映射。(我无法找到指定多个sourcemap输出的方法)

此外,uglify在压缩每个js文件后会覆盖soucemap


如何配置此插件以输出所有js文件的完整源代码映射?

您可以在sourceMap上设置Function

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

在V0.4.0版本中,
sourceMap
Boolean
值。使用动态生成生成包含多个
.min.js
文件的多个sourceMap

uglify: {
  options: {
    sourceMap: true
  },
  build: {
    files: [{
        expand: true,
        cwd: 'src/',
        src: '*.js',
        dest: 'build/',
        ext: '.min.js',
        extDot: 'first'
    }]
  }
}
选项:{
美化:假,,
横幅:“lorem ipsum”,
mangle:错,
sourceMap:true,
压缩:{
条件句:true,
布尔人:没错,
没有使用过:是的,
是的,
死亡密码:对,
如果返回:true,
加入瓦拉斯:没错,
drop_控制台:true
}
},
最小值:{
档案:[{
是的,
cwd:“”,
src:['***.js','!***/*.min.js'],
目标:'',
分机:'.min.js'
}]
}
sourceMap:function(path){returnpath.replace(/.js$/,“.js.map”)}
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'
  }]
}