Оптимизация параметров обновления в одной задаче, чтобы последующие задачи могли использовать их

Мне нужно бежать grunt-bump который поднимает номер версии в package.jsonзатем беги grunt-xmlpoke и обновите файл конфигурации с новым номером версии.

Итак, я попробовал пару вещей. Внутри grunt.initConfig Я запускаю Bump, затем я запускаю xmlpoke.

1) xmlpoke берет grunt.file.readJSON('package.json').version

или же

2) после удара я запускаю пользовательскую задачу, которая добавляет новую версию в опцию grunt, и xmlpoke принимает значение grunt.options("versionNumber")

В обеих этих версиях результат xml является предварительной версией. Таким образом, xmlpoke получает свои значения до запуска задач и использует их при вызове своей задачи. Но мне нужно принять значение, которое является результатом предыдущего задания.

Есть какой-либо способ сделать это?

1 ответ

Решение

Хорошо, я понял, несколько очевидное решение.

Используя grunt-bump, вы можете обновить package.config, вы также можете обновить package.config, который часто читается в переменную pkg в начале initConfig. поэтому в настройке задачи bump вы указываете

{
updateConfigs:['pkg']
}

Тогда в xmlpoke я могу сделать

{ xpath:'myxpath', value:'blablabla/<%=pkg.version%>'}  

и это работает. То, что я делал раньше, было

{ xpath:'myxpath', value:'blablabla/' + grunt.options.versionNumber}

где я установил номер версии в предыдущем задании после удара. Или же

{ xpath:'myxpath', value:'blablabla/'+ grunt.file.readJSON('package.json').version}

ни один из них не работал. Я полагаю, что я только начинал использовать смарт для своего блага, так как <% =%> - более распространенный и типичный способ доступа к параметрам из initConfig.

Во всяком случае, у вас есть это. Или у меня это есть.

Другие вопросы по тегам