Grunt: изменить расширение файла при сборке

Я хотел бы написать задачу Grunt, которая во время сборки скопирует все имеющиеся у меня файлы.html и создаст ее.asp-версию в / dist.

Я пытался использовать grunt-contrib-copy для достижения этой цели, и вот что у меня есть:

copy: {
  //some other tasks that work...

  //copy an .asp version of all .html files
  asp: {
    files: [{
      expand: true,
      dot: true,
      cwd: '<%= config.app %>',
      src: ['{,*/}*.html'],
      dest: '<%= config.dist %>',
      option: {
        process: function (content, srcpath) {
          return srcpath.replace(".asp");
        }
      }
    }]
  } //end asp task
},

Я знаю что process функция на самом деле не правильная... Я пробовал несколько разных регулярных выражений, чтобы заставить его работать безрезультатно. Когда я бегу asp Задача, Grunt CLI говорит, что он скопировал 2 файла, но их нигде нет. Любая помощь приветствуется.

1 ответ

Решение

Вы можете сделать это с помощью rename функция.

Например:

copy: {
  //some other tasks that work...

  //copy an .asp version of all .html files
  asp: {
    files: [{
      expand: true,
      dot: true,
      cwd: '<%= config.app %>',
      src: ['{,*/}*.html'],
      dest: '<%= config.dist %>',
      rename: function(dest, src) {
         return dest + src.replace(/\.html$/, ".asp");
      }
    }]
  } //end asp task
},

Это должно работать.

Другие вопросы по тегам