2015-05-14 82 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

謝謝,這給了我以後的結果。 –