2015-05-14 2 views
1

У меня есть следующая копия задачи в gruntfile.jsGrunt-вно-копия: переменные внутри функции переименования

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 %>',''); 
      } 
     } 
    } 

В настоящее время файл копируется успешно, но после копирования, я хотел бы, чтобы удалить номер версии которые составляют часть имени файла.

Они определены ранее в файле grunt и работают как ожидалось до функции rename.

Текущий я получаю 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

Спасибо, это дало мне результат, который я получил после. –

Смежные вопросы