Как полностью отключить CoffeeScript в приложении Rails 3.1? - PullRequest
38 голосов
/ 04 января 2012

В момент, когда я генерирую новый контроллер, Rails также генерирует файл .js.coffee для контроллера. Поскольку я не использую CoffeeScript, я хочу, чтобы Rails вместо меня генерировал .js файлы для меня.

Достаточно ли закомментировать гем coffee-rails, чтобы полностью отключить CofeeScript в приложении Rails 3.1?

Ответы [ 5 ]

61 голосов
/ 04 января 2012
  1. Прокомментируйте gem "coffee-script" в вашем Gemfile
  2. Используйте .js вместо .js.coffee для файлов javascript
27 голосов
/ 08 апреля 2014

Не уверен, что это считается для Rails 3.1, но в 4 вы также должны установить javascript_engine в :js в application.rb, чтобы дать указание генераторам создавать .js файлы вместо .js.coffee.

config.generators do |g|
  # .. other configuration ..
  g.javascript_engine :js
end
1 голос
/ 01 июля 2017

У Коена и Гаурава Гупты хорошие ответы!

Если вы хотите автоматически вносить эти изменения для каждого нового проекта Rails, вы можете использовать файл шаблона.

В ~/rails-template.rb

# Don't install coffeescript
gsub_file 'Gemfile', /^gem \'coffee-rails\'/ do
  "\# gem 'coffee-rails'"
end

# Mess with generators to get the behavior we expect around new files
# For these injections, indentation matters!
inject_into_file 'config/application.rb', after: "class Application < Rails::Application\n" do
  <<-'RUBY'
    config.generators do |g|
      # Always use .js files, never .coffee
      g.javascript_engine :js
    end
  RUBY
end

Затем в ~/.railsrc

-m ~/.rails-template.rb

Теперь, когда вы запустите rails new, гем coffeescript будет закомментирован, и новые контроллеры будут использовать .js вместо .coffee.

Протестировано на Rails 5.0.4, но я полагаю, что оно должно работать и для более ранних версий.


Кроме того, Шаблоны Rails и *Генераторы 1023 * в целом , очень мощные.Я учитель, и мои ученики, как правило, создают от 15 до 20 рельсовых проектов в течение курса, и предоставление им хорошего файла шаблона с отладочными гемами, тестированием спецификаций и т. Д. - это огромная экономия времени.Конечно, после того, как они внесли изменения.Если вам интересно, мой личный .rails-template.rb это на GitHub .

0 голосов
/ 11 июля 2013

Примечание для Rails 4, или если вы используете 'turbolinks', 'uglifier' или любой другой вид драгоценного камня, который требует, чтобы сервер интерпретировал JavaScript, закомментируйте их также.

0 голосов
/ 23 сентября 2012

У меня была эта проблема, так как я использую кодекит для компиляции своего coffeescript.

Я справился с этим, переименовав папку «assets / coffee» в «assets / cafe», чтобы Rail не нашел ее.

Редактировать: Что работает (и ЕДИНСТВЕННАЯ вещь, которая работает для меня, ответ выше не работает), это добавить отдельную папку «App / Coffee» и настроить ее для компиляции в папку assets / javascript. Если он находится в каталоге ресурсов, rails найдет его независимо от имени.

...