Ответ 1
У Джереми уже есть этот, но позвольте мне добавить некоторые важные детали и оговорки:
- В 39k gzipped (по сравнению с jQuery в 29k)
coffee-script.js
- большой файл; поэтому, если вы фактически не позволяете своим пользователям запускать собственный CoffeeScript, вам действительно не следует использовать его в процессе производства. - Как упоминалось в документации, каждый фрагмент CoffeeScript будет находиться в своем анонимном закрытии. Таким образом, ваш примерный фрагмент ничего не сделает -
squares
не будет отображаться вне script. Вместо этого вы хотите изменить его наwindow.squares = ...
. - Весь код CoffeeScript, будь то внешний или встроенный, будет запускаться после всего кода JavaScript на странице. Это потому, что
coffee-script.js
не читает ваши теги<script type="text/coffeescript>
до тех пор, пока документ не будет готов, и к тому времени ваши скрипты Java уже запустились. - Удаленные CoffeeScripts загружаются через
XMLHTTPRequest
, что означает, что они должны размещаться в том же домене, что и ваш сайт. (У некоторых браузеров-Chrome, по крайней мере, также есть проблема с выполнениемXMLHTTPRequest
на путиfile://
.) - В настоящее время порядок, в котором запускаются разные удаленные CoffeeScripts, не гарантируется. Я представил патч для этого, но он официально не является частью CoffeeScript. См. этот запрос на перенос.
Итак, вы можете посмотреть некоторые альтернативы для использования CoffeeScript в качестве скомпилированного JavaScript. Если вы разрабатываете сервер Ruby или Python, доступны плагины. Я попытался перечислить их всех в http://github.com/jashkenas/coffee-script/wiki/Web-framework-plugins.
Если вы разрабатываете сайт без бэкэнд, инструментом, который я настоятельно рекомендую, является Middleman, который позволяет вам работать с CoffeeScript (а также Haml и Sass, если хотите) во время разработки, затем скомпилируйте и уменьшите его для развертывания производства.