If you are using the “exports” object in your RequireJS module definition and happen to also be using CoffeeScript then be careful to either return the exports object at the end of the function or explicitly return nothing from the function by typing “return” on the last line. Like so:
define((require, exports, module) ->
exports.foo = 'bar'
return
)
If you don’t return nothing or the exports object CoffeeScript will compile this:
define((require, exports, module) ->
exports.foo = 'bar'
)
…to the following javascript:
define(function(require, exports, module) {
return exports.foo = 'bar';
});
Where the return value will be the string ‘bar’. This is no good because if you return a value from your module definition function, RequireJs uses it instead of the exports object. So when you come to require your module, you’ll be passed a String, rather than an object with a “foo” property as you’d expect.
Hi, this weekend is fastidious in favor of me, for the reason that this
moment i am reading this impressive informative post here at
my house.