How to specify multiple source-maps in uglify grunt task?

喜你入骨 提交于 2019-12-18 05:46:06

问题


I am using grunt-contrib-uglify plugin in my grunt 0.4.

I have the following task:

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

As you can see, uglify is configured to compress multiple files, and there is only one source-map specified. (I am not able to figure out a way to specify multiple sourcemap outputs).

Also, uglify is overwriting the soucemap after compressing each js file.

How do I configure this plugin to output the complete source-maps for all my js files?


回答1:


You can set functtion at sourceMap.

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



回答2:


In the V0.4.0 version, sourceMap is Boolean value. Use dynamic build to produce multiple sourceMap with multiple .min.js files.

uglify: {
  options: {
    sourceMap: true
  },
  build: {
    files: [{
        expand: true,
        cwd: 'src/',
        src: '*.js',
        dest: 'build/',
        ext: '.min.js',
        extDot: 'first'
    }]
  }
}



回答3:


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


来源:https://stackoverflow.com/questions/14207983/how-to-specify-multiple-source-maps-in-uglify-grunt-task

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!