【问题标题】:Rails and codekit - how to disable rails coffescript compilationRails 和 codekit - 如何禁用 rails coffescript 编译
【发布时间】:2012-09-16 04:30:32
【问题描述】:

我使用的是 rails 3.2,但我正在使用 CodeKit 编译我的咖啡文件。

我仍然希望我的咖啡文件存在于“资产”中,但每次我重新启动 rails 时,它都会在其中找到它们并尝试自行编译它们。

我的文件位于 /assets/cafe/myscript.coffee,codekit 将它们编译成 /assets/javascripts/myscript.js

coffee-rails gem 已经在我的 gemfile 中被注释掉了(当 rails 尝试(重新)编译它时,它会给出“抛出错误(“LoadError:没有要加载的此类文件——coffee_script)” - 虽然我真的不想要它甚至可以尝试编译。

在 application.rb 中设置“config.assets.compile = false”会导致“application.js 未预编译”

【问题讨论】:

  • 你能看到 LoadError 是从哪里抛出的吗?看起来它仍在尝试运行 coffee-rails gem。你能验证它不在你 Gemfile.lock 中吗 - 其他一些 gem,比如 RailsAdmin,依赖它并且会导致它被安装和使用。
  • 即使它没有被加载,它仍然会在 /assets 中找到 coffeescripts 并试图编译它们。似乎没有任何方法可以关闭它,这让我感到惊讶。

标签: ruby-on-rails coffeescript asset-pipeline


【解决方案1】:

您可能应该只配置您的 sprocket 清单以不需要整个树。

编辑 app/assets/javascripts/application.js

通常看起来像这样:

//= require jquery
//= require jquery_ujs
//= require_tree .

改成

//= require jquery
//= require jquery_ujs
//= require myscript

【讨论】:

  • coffeescripts 实际上在 ../coffee 中,所以不应该是这个清单导致它们被编译?
【解决方案2】:

一种(劣质的)解决方法是将我的咖啡脚本放在“应用程序”而不是“资产”中(因此在树上多了一个分支。)

这很糟糕,因为这不是他们应该去的地方,但至少它确实使它脱离了 rails 的跟踪者倾向,即在资产中的任何位置查找咖啡脚本文件并尝试编译它们。

【讨论】:

  • 在 /app 下创建文件夹对很多事情都很有意义。我想我们只需要使用 /app/assets 文件夹作为资产管道的域。
猜你喜欢
  • 2012-11-08
  • 2013-08-10
  • 1970-01-01
  • 2016-09-15
  • 2012-04-14
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 2015-05-01
相关资源
最近更新 更多