我怎样才能完全禁用Rails 3.1应用程序中的CoffeeScript?
当我生成一个新的控制器的时候,Rails也为控制器生成一个.js.coffee
文件。 因为我不使用CoffeeScript,所以我想让Rails为我生成.js
文件。
在Rails 3.1应用程序中完全禁用CofeeScript是否足以将coffee-rails
gem注释掉?
- 在您的Gemfile中注释
gem "coffee-script"
- 使用.js而不是.js.coffee作为你的javascript文件
不知道这是否代表Rails 3.1,但是在4中,您还应该将javascript_engine
设置为:js
application.rb
:js
来指示生成器创build.js
文件而不是.js.coffee
。
config.generators do |g| # .. other configuration .. g.javascript_engine :js end
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
。
testingRails 5.0.4,但我相信它也适用于早期版本。
另外, Rails模板和一般的生成器都非常强大。 我是一名教师,我的学生通常会在课程中创build15到20个rails项目,并为他们提供一个包含debugginggem,spec风格testing等的好的模板文件,这是一个巨大的节省时间的工具。 当然,他们自己做了一次修改。 如果你有兴趣,我的个人.rails-template.rb
在GitHub上 。
注意Rails 4,或者如果你正在使用“turbolinks”,“uglifier”或其他任何需要服务器解释javascript的gem,请将其注释掉。
我有这个问题,因为我正在使用codekit来编译我的coffeescript。
我通过将我的“assets / coffee”文件夹重命名为“assets / cafe”来解决这个问题,所以铁路公司找不到它。
编辑:什么工作(和唯一的事情对我来说,上述答案不起作用)是添加一个单独的文件夹“应用程序/咖啡”,并将其设置为编译到资产/ JavaScript文件夹。 如果它在资产目录中,无论名称如何,rails都会find它。