【问题标题】:How to specify multiple source-maps in uglify grunt task?如何在 uglify grunt 任务中指定多个源映射?
【发布时间】:2013-01-08 03:57:09
【问题描述】:

我在我的grunt 0.4 中使用grunt-contrib-uglify 插件。

我有以下任务:

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

如您所见,uglify 被配置为压缩多个文件,并且只指定了一个 source-map。 (我无法找到指定多个源映射输出的方法)。

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

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

【问题讨论】:

    标签: gruntjs uglifyjs


    【解决方案1】:

    您可以在 sourceMap 中设置功能。

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

    【讨论】:

    • sourceMap: function(path) { return path.replace(/.js$/,".js.map")}
    【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        • 1970-01-01
        相关资源
        最近更新 更多