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