Я столкнулся следующую интересную задачу:Сохранение состояния в задаче Grunt
- Я хотел бы создать задачу Grunt, которая выполняется на различных этапах процесса сборки/выпуска.
- Возможно, что один вызов делает некоторые изменения в файлах на основе шаблона, например. заменяя номер версии или тег Git, например,
#develop
в некоторых файлах. - Более поздний вызов в том же сборке должен «вернуть» вышеуказанные изменения обратно к их первоначальным значениям.
Основываясь на вышеизложенном, мне нужно будет найти способ отслеживания измененных файлов с первого вызова, поэтому я могу вернуть изменения на втором шаге. Я не могу использовать шаблон для второго шага, чтобы избежать ложных срабатываний.
Пример:
- Начать выпуск - много шагов, как часть этого, обобщать, уродовать/Минимизировать, врезаться номер версии, создать релиз ветки мерзавец.
- Замените номера версий некоторых зависимостей, например. в
bower.json
- изменить их от#develop
до#1.2.3
- некоторых более шагов, в том числе Git совершает
- Заменить номер версии измененный выше от
#1.2.3
назад#develop
- Дополнительных шагов по очистке релиза
последний шаг затруднен, так как я не хочу изменять какие-либо вхождения #1.2.3
, которые я не обновлял на предыдущем шаге. Для этого мне нужно будет хранить список измененных файлов где-нибудь, либо в памяти, либо во временном файле в корне проекта, например. что-то вроде .grunt-replace
. После прочтения файла на последнем шаге его можно удалить плагином.
Кто-нибудь использует плагин Grunt, как это? Как бы вы решили это? Имеет ли Grunt функциональность, которая будет поддерживать что-то вроде выше, или я должен просто использовать API-интерфейс Node.js?
Есть ли другие шаблоны, которые я должен рассмотреть, чтобы сохранить какое-то состояние между вызовами Grunt?