#javascript #gruntjs
#javascript #gruntjs
Вопрос:
Мой Gruntfile определяет 3 цели «dev», «beta» и «production» для нескольких задач. Если я запускаю grunt task:target
, она работает правильно для этой задачи.
Теперь я хочу объединить все свои задачи в одну задачу сборки. Я пытался:
grunt.registerTask('build', ['task1', 'task2', 'task3']);
но если я запускаю grunt build:dev
, он игнорирует мою цель и просто запускает все цели для всех задач сборки.
Это работает:
grunt.registerTask('build:dev', ['task1:dev', 'task2:dev', 'task3:dev']);
grunt.registerTask('build:beta', ['task1:beta', 'task2:beta', 'task3:beta']);
grunt.registerTask('build:production', ['task1:production', 'task2:production', 'task3:production']);
Но я уверен, что это неправильный способ, и он плохо масштабируется.
Я смог сделать с этим то, что хотел:
grunt.registerTask('build', 'My build task', function(targetName) {
runTask('task1', targetName);
runTask('task2', targetName);
runTask('task3', targetName);
});
function runTask(task, targetName) {
if (targetName) {
grunt.task.run(task ':' targetName);
} else
{
grunt.task.run(task);
}
}
Это работает, но мне интересно, не упускаю ли я что-то, уже встроенное в Grunt, для достижения того же.