2015-05-14 26 views
1

我有一个gruntfile.js咕噜-contrib请复制:重命名功能中的变量

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结束。

我试过各种不同的方法将变量传递给重命名函数,但没有成功。

谢谢。

+0

这是因为届时该文件被命名为有'_ <%= props.majorversion%><%= props.minorversion%>'已经被取代。为什么称它为一个名称,然后重命名它,而不是仅仅命名它就是你想要的名称?不熟悉重命名方法只是疯狂的猜测 – GillesC

+0

初始文件已存在,并且文件名可能会更改。该文件的新副本正在与Service Worker一起使用,并在文件缓存中引用,如果使用不会更改的静态名称,将会有所帮助。 –

+0

足够公平:)如果你console.log它内部重命名函数是文件名转换?如果是这样,用正则表达式替换可能会有诀窍。 – GillesC

回答

1

尝试substring代替:

rename: function(dest, src) { 
      return dest + src.substring(0, src.indexOf('_')) + '.css'; 
     } 
+0

谢谢,这给了我以后的结果。 –