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 return
e evitar o uso exports
.
2) Coloque e esvazie return
no final do seu módulo.