Using RequireJS exports with CoffeeScript

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.

18,113 thoughts on “Using RequireJS exports with CoffeeScript

  1. В этом обзорном материале представлены увлекательные детали, которые находят отражение в различных аспектах жизни. Мы исследуем непонятные и интересные моменты, позволяя читателю увидеть картину целиком. Погрузитесь в мир знаний и удивительных открытий!
    А что дальше? – выведение из запоя на дому

  2. I all the time used to read piece of writing in news papers but
    now as I am a user of internet therefore from now I am using net for content,
    thanks to web.

  3. Этот интересный отчет представляет собой сборник полезных фактов касающихся актуальных тем. Мы проанализируем данные чтобы вы могли сделать обоснованные выводы. Читайте чтобы узнать больше о последних трендах и значимых событиях Есть чему поучиться – вывод из запоя капельница на дому

  4. Эта публикация погружает вас в мир увлекательных фактов и удивительных открытий. Мы расскажем о ключевых событиях, которые изменили ход истории, и приоткроем завесу над научными достижениями, которые вдохновили миллионы. Узнайте, чему может научить нас прошлое и как применить эти знания в будущем.
    Заходи — там интересно – вызов нарколога на дом недорого

  5. Почему пользователи выбирают площадку
    KRAKEN?
    Маркетплейс KRAKEN заслужил доверие многочисленной аудитории благодаря
    сочетанию ключевых факторов.
    Во-первых, это широкий и разнообразный ассортимент, представленный сотнями
    продавцов. Во-вторых, интуитивно понятный интерфейс KRAKEN, который упрощает навигацию, поиск
    товаров и управление заказами даже для новых пользователей.
    В-третьих, продуманная система безопасных транзакций, включающая
    механизмы разрешения споров (диспутов) и возможность использования условного депонирования, что минимизирует риски для обеих сторон сделки.
    На KRAKEN функциональность сочетается
    с внимательным отношением к безопасности клиентов,
    что делает процесс покупок более предсказуемым, защищенным и, как следствие, популярным среди пользователей, ценящих анонимность и надежность.

  6. Эта познавательная публикация погружает вас в море интересного контента который быстро захватит ваше внимание. Мы рассмотрим важные аспекты темы и предоставим вам уникальные Insights и полезные сведения для дальнейшего изучения. Получить дополнительные сведения – вывод из запоя санкт петербург

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>