如何在grunt-contrib-copy文件重命名操作期间删除原始文件?

时间:2015-12-02 02:40:50

标签: regex node.js gruntjs rename

我主要拥有grunt-contrib-copy所需的内容,因为我使用'rename'和'options.process'重命名文件名,以及文件中的内容。我缺少的最后一步是如何删除在此过程中重命名的原始文件。

这就是我所拥有的:

copy: {
  rename: {
    files: [
      {
        expand: true,
        filter: 'isFile',
        cwd: './', 
        src: ['**','!**/*.json','!**/.git/**','!**/node_modules/**','!**/*.sql','!README.md'],
        dest: './',
        rename: function(dest, src) {

          var replaceValue = package.themeReplaceName;
          var start = src.search(replaceValue);
          var end = start + replaceValue.length;

          if (start === -1) {
            return src;
          }

          var returnVal = dest + src.substring(0, start) + package.projectTitle + src.substring(end);

          grunt.log.writeln(returnVal);

          return returnVal;
        }

      }
    ],

    options: {
      process: function (content, srcpath) {

        var newContent = content.split(package.themeReplaceName).join(package.projectTitle);
        grunt.log.writeln('Processing ' + srcpath + 'for ' + package.themeReplaceName + 'replacement...');

        return newContent;
      },
    }

  }
}

这会导致重命名我的所有文件,并替换其内容,但任何重命名的文件都会保留其原始文件。

我怎么能简洁地删除它们?

另外,如果你想获得很棒的分数,你可以在'src'中用适当的正则表达替换我的'重命名'方法,如果你愿意的话!

提前致谢, d

1 个答案:

答案 0 :(得分:0)

您必须使用grunt-contrib-clean删除文件。

module.exports = function(grunt){

grunt.config.set('clean', {

    options: { force: true },
    clean: {
        src: ["path/yourfile","path/yourfile2"]
        }});