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

K E*_*est 39 coffeescript ruby-on-rails-3.1

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

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

Gau*_*pta 61

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

  • 你为什么不试试呢? (4认同)
  • 这是在某个地方记录下来的吗?注释掉`coffee-script`宝石就足够了? (2认同)
  • 一般来说,从Gemfile中删除项目应该有效,但有一些警告.`coffee-script`可能是另一个GEM的依赖.检查依赖项的最佳位置是`./ Gemfile.lock`.例如:`coffee-rails`是`turbolinks`的依赖,而'coffee-script`是`coffee-rails`的依赖.所以,如果你从Gemfile中删除`gem'coffee-script',但是如果你有'gem'turbolinks''`,那么仍然会安装CoffeeScript. (2认同)
  • 如果你使用像active_admin这样的东西,coffescript也会作为依赖包含在那里,所以这不仅适用于标准的rails gems.最安全地使用`config.generators {{g | g.javascript_engine:js}` (2认同)

Koe*_*en. 27

不确定这是否适用于Rails 3.1但是在4中你还应该设置javascript_engine:jsin application.rb来指示生成器创建.js文件而不是.js.coffee.

config.generators do |g|
  # .. other configuration ..
  g.javascript_engine :js
end
Run Code Online (Sandbox Code Playgroud)

  • 你也可以在一行上执行此操作:`config.generators.javascript_engine:js` (6认同)
  • 在Rails 4.1中似乎不再需要这样做.只需从Gemfile中删除'gem coffee-rails'即可. (3认同)
  • 如果你对像coffeeadmin这样的coffee-rails有传递依赖性,那么即使在Rails 4.1中也是如此 (2认同)