Запустите класс CoffeeScript в браузере и в узле

У меня есть класс в CoffeeScript, который я хотел бы использовать как на сервере, так и в более широком.

Для сервера мне нужно

class classname
    constructor: (@arg)->
        #code

module.classname = classname

Но для brwoser мне нужно

class classname
    constructor: (@arg)->
        #code

window.classname = classname

Есть ли способ сделать так, чтобы поддерживался только один файл?

1 ответ

Решение

В общем случае это требует использования таких библиотек, как http://requirejs.org/ и http://browserify.org/, но в вашем случае вы можете просто написать:

class classname
  constructor: (@arg)->
    #code

module?.classname = classname
window?.classname = classname

Этот код проверит наличие module а также window переменные до их изменения.

Другие вопросы по тегам