[RequireJS] Usando exportações em módulos CoffeeScript

Se você usar RequireJS com exportações em CoffeeScript, certifique-se de que a última linha do seu arquivo não seja:

exports = MyModule

OU

exports.Foo = Foo

Uma vez que CoffeeScript tem retornos implícitos, isso será compilado para:

return exports = MyModule

E

return exports.Foo = Foo

Isso às vezes resultará em situações em que exigir esse módulo fornecerá um objeto vazio {}.

Para corrigir isso, você pode:

1) Basta usar explícito returne evitar o uso exports.

2) Coloque e esvazie returnno final do seu módulo.