【发布时间】:2015-05-14 16:12:50
【问题描述】:
我在gruntfile.js 中有以下复制任务
copy: {
css: {
expand: true,
cwd: 'min/css',
src: 'theme_<%= props.majorversion %>.<%= props.minorversion %>.min.css',
dest: 'dest/dir/',
rename: function(dest, src) {
return dest + src.replace('_<%= props.majorversion %>.<%= props.minorversion %>','');
}
}
}
目前,文件已成功复制,但复制后,我想删除构成文件名一部分的版本号。
它们在 gruntfile 的早期定义,并且在重命名函数之前按预期工作。
目前我得到file_1.123.css,我想最终得到file.css。
我尝试了各种不同的方法将变量传递给重命名函数,但都没有成功。
谢谢。
【问题讨论】:
-
这是因为到那时该文件已命名,并且
_<%= props.majorversion %>.<%= props.minorversion %>已被替换。为什么叫它一个名字然后重命名它,而不是仅仅命名它你想要的名字?不熟悉重命名方法只是猜测 -
初始文件已经存在并且文件名可能会改变。该文件的新副本正在与 Service Worker 一起使用,并在文件缓存中被引用,在该文件缓存中使用不会更改的静态名称将是有益的。
-
足够公平:) 如果您在重命名函数中控制台.log 文件名是否已转换?如果是这样,用正则表达式替换可能会奏效。
标签: javascript gruntjs grunt-contrib-copy