Registro de tareas Grunt cuyo código se encuentra en archivos JavaScript externos

He escrito una función que me gustaría usar como una tarea Grunt. Puedo hacer esto agregando esto al Gruntfile:

grunt.registerTask('foo', function () {
    // code here
});

Sin embargo, tiene más sentido mantener el código de función en un archivo separado. Planeo definir un montón de estas tareas personalizadas y no quiero inflar el Gruntfile.

No estoy seguro de cuál es la forma preferida de registrar tales tareas. He encontrado que esto funciona:

grunt.registerTask('foo', function () {
    require('./path/to/foo.js')(grunt);
});

Entonces, tengo la función en línea como en el primer ejemplo, pero esta vez, estoy cargando un archivo externo e invocándolo de inmediato. En ese archivo externo, por supuesto tengo que escribir:

module.exports = function (grunt) {
    // code here
}

Esto funciona, pero se siente hackish. ¿Hay una forma más adecuada de hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta