При кодировании некоторых тестов для плагина grunt, как динамически изменять конфигурацию, используемую grunt.tasks(...)

Я пишу пьяный плагин. В моих тестах, написанных с обетами, я хочу изменить некоторый объект конфигурации, определенный в моем gruntfile, перед вызовом

grunt.tasks(["my_task"], {}, function(){
    // do something}
)

Цель состоит в том, чтобы выполнить некоторую задачу, которую я определил в моем файле gruntfile несколько раз с различными конфигурациями.

Я не могу использовать классический подход узлов, потому что конфигурация, которую я хочу изменить, не является конфигурацией моей задачи. Кроме того, у меня есть некоторые проблемы с запуском узловых блоков.

У меня есть что-то вроде этого:

grunt.initConfig({
    object_I_want_to_alter:{...},
    the_task_I_call:{...}
})

Кажется, что нет никакого реального решения для ворчания от API, поскольку это инструмент командной строки. Тем не менее, есть два метода API, которые могут помочь: grunt.util.spawn и grunt.tasks

Оба, кажется, черный ящик, который читает gruntfile при вызове.

Если я попытаюсь сделать первый вызов grunt.tasks() для предварительной загрузки конфигурации, я могу изменить свой объект, но второй вызов grunt.tasks(), похоже, полностью перезагрузит gruntfile и не использует предыдущий конфигурационный файл.

Есть ли у кого-то понимание того или иного способа достижения этой цели?

Благодарю.

1 ответ

ОК, нашел решение.

Этот ответ от ворчливого комментатора был в моей голове некоторое время, но я действительно понимаю его только сейчас.

В самом деле, если вы удалите файл grunt и сделаете все из ваших тестов, используя сначала хак, вы можете затем играть со своей конфигурацией сколько захотите.

Спасибо Kyle Robinson Young за информацию.

Было бы здорово иметь больше информации об этом на ворчливом веб-сайте.

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