如何在Rails 3.1应用程序中完全禁用CoffeeScript?

时间:2012-01-04 04:54:24

标签: ruby-on-rails-3.1 coffeescript

在我生成新控制器的那一刻,Rails也为控制器生成.js.coffee文件。由于我不使用CoffeeScript,我希望Rails为我生成.js个文件。

是否足以注释掉coffee-rails gem以完全禁用Rails 3.1应用程序中的CofeeScript?

5 个答案:

答案 0 :(得分:61)

  1. 在Gemfile中注释掉gem "coffee-script"
  2. 使用.js而不是.js.coffee作为您的javascript文件

答案 1 :(得分:27)

不确定这是否适用于Rails 3.1,但在4中你还应该在javascript_engine中将:js设置为application.rb,以指示生成器创建.js个文件而不是{ {1}}。

.js.coffee

答案 2 :(得分:1)

Koen和Gaurav Gupta有很好的答案!

如果要为每个新的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 gem都会被注释掉,新的控制器将使用.js代替.coffee

在Rails 5.0.4上测试过,但我相信它也适用于早期版本。

另外,Rails templatesgenerators in general是超级强大的。我是一名教师,我的学生通常会在课程中创建15到20个铁轨项目,并为他们提供一个包含调试宝石,规格样式测试等的好模板文件,这是一个巨大的节省时间。当然,当他们自己做出改变之后。如果您有兴趣,我的个人.rails-template.rbon GitHub

答案 3 :(得分:-1)

注意Rails 4,或者如果您正在使用'turbolinks','uglifier'或任何其他需要服务器解释javascript的gem,请将它们注释掉。

答案 4 :(得分:-4)

我遇到了这个问题,因为我正在使用codekit来编译我的coffeescript。

我通过将'assets / coffee'文件夹重命名为'assets / cafe'来解决这个问题,因此铁路无法找到它。

编辑:什么工作(以及对我有用的唯一的事情,上面的答案不起作用)是添加一个单独的文件夹'App / Coffee',并将其设置为编译到assets / javascript文件夹中。如果它位于assets目录中,则无论名称如何,rails都会找到它。