Grunt:在构建时更改文件扩展名

Grunt: change file extension at build

我想编写一个 G运行t 任务,在构建期间,它将复制我拥有的所有 .html 文件并制作一个 .asp 版本/ 分布也是如此。

我一直在尝试使用 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 任务时,G运行t CLI 说我已经复制了 2 个文件,但找不到它们。感谢任何帮助。

您可以使用 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
},

这应该有效。