Как использовать параметр "--bare" в Rails 3.1 для CoffeeScript?
Кто-нибудь знает, как я могу использовать этот параметр в Rails 3.1?
Теперь CoffeScript помещает функцию с .call(this)
в каждый файл, но я хочу удалить это.
EDIT:
"Невозможно найти переменную" error with Rails 3.1 и Coffeescript" и "шаблон для модулей CoffeeScript " что я хочу. Я изменю свои глобальные вары, чтобы использовать область @global
.
Ответы
Ответ 1
Я бы рекомендовал не делать этого. См. Мой ответ в Шаблон для модулей CoffeeScript по некоторым причинам. ( "Сделать код CoffeeScript несовместимым с готовыми Rails 3.1" - еще одна причина.) Лучше просто использовать
window.a = b
или даже
@a = b
вместо a = b
, когда вы пытаетесь экспортировать что-то в глобальную область.
В предыдущих версиях Rails 3.1 была включена компиляция bare
. Это было классифицировано как ошибка и исправлено в RC1.
Итак, хотя я настоятельно рекомендую вам не делать этого, здесь, как включить голую сборку: Добавить
Tilt::CoffeeScriptTemplate.default_bare = true
на ваш environment.rb
.
Ответ 2
Я рекомендую воспользоваться закрытием CoffeeScript и следить за распространением модуля CommonJS. Но иногда, иногда, вполне нормально использовать опцию --bare. В моем случае, при оказании помощника Jasmine spec, чтобы я мог держать вещи на верхнем уровне, а также воспользоваться включенной директивой Sprockets в спецификациях Jasmine.
С этой целью я создал драгоценный камень "sprockets-blackcoffee", о котором вы можете узнать здесь. https://github.com/metaskills/sprockets-blackcoffee