2013-01-08 28 views
12

我在我的grunt 0.4中使用grunt-contrib-uglify插件。如何在uglify grunt任务中指定多个源图?

我有以下任务:

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

正如你所看到的,丑化被配置为压缩多个文件,而且只有一个指定的源地图。 (我无法找出指定多个源映射输出的方法)。

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

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

回答

11

您可以在sourceMap中设置功能。

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

'sourceMap:功能(路径){回报path.replace(/ JS $ /, “js.map。”)}' –

2

在V0.4.0版本,sourceMapBoolean值。使用动态构建生成多个源文件的多个sourceMap。

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' 
    }] 
}