Подтвердить что ты не робот

Как указать несколько исходных карт в задаче uglify grunt?

Я использую плагин grunt-contrib-uglify в моем grunt 0.4.

У меня есть следующая задача:

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

Как вы можете видеть, uglify настроен на сжатие нескольких файлов, и указана только одна карта источника. (Я не могу понять, как указать несколько выходов sourcemap).

Кроме того, uglify перезаписывает sucemap после сжатия каждого js файла.

Как настроить этот плагин для вывода полных исходных карт для всех моих js файлов?

4b9b3361

Ответ 1

Вы можете установить функцию в sourceMap.

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

Ответ 2

В версии V0.4.0 значение sourceMap равно Boolean. Используйте динамическую сборку для создания нескольких sourceMap с несколькими .min.js файлами.

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