【发布时间】:2016-03-06 04:12:48
【问题描述】:
我主要从 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' 中的适当正则表达式替换我的 'rename' 方法!
提前致谢, d
【问题讨论】:
-
为什么不使用 grunt-contrib-clean 来完成这项工作?
-
我会调查一下,谢谢
-
@Louis Barranqueiro 好的,从这里到哪里?我不明白如何将 grunt-contrib-clean 简洁地集成到我正在做的事情中?我没有更改文件扩展名,所以我可以运行“删除所有 .php”文件,就像我在迄今为止看到的示例中看到的那样。我想我需要删除最初复制的文件,在它被复制之后以某种方式确保我不必重新编写一堆正则表达式或规则以避免删除错误的东西,如果我需要递归所有我的再次文件?
标签: regex node.js gruntjs rename