【发布时间】:2012-08-28 16:31:32
【问题描述】:
我正在编写一个具有一些依赖关系的 Rails 引擎。我已经在 gemspec 中指定了依赖项,并且当我运行 bundle install 时引擎正在找到它们(即 Gemfile.lock 看起来正确)。当我想在 Ruby 文件中使用插件时,我可以这样做,但需要在文件顶部显式地require dependency-name。
但是,当我想使用依赖项的资产管道时,sprockets 却找不到它。
我(目前)正在使用的应用程序是位于 rails 插件的测试文件夹中的虚拟应用程序。如果我在引擎的 Gemfile(实际上是虚拟应用程序的 Gemfile)中指定 Sprockets 可以找到资产,但如果我在 gemspec 中指定它们则不能。我不想依赖 Gemfile,因为这意味着任何使用我的插件的应用程序都需要手动将我的所有依赖项添加到他们的 Gemfile 中。出于同样的原因,我不想要涉及更新应用配置文件的解决方案。
当 gemspec 包含依赖项时,这有效(在 ruby 文件中):
require 'dependency-name'
但是当 gemspec 中包含依赖项时,这(在 JS 文件中)不起作用:
//= require 'dependency-name'
当 Gemfile 包含依赖项时,不需要 require。我认为这很清楚,但如果您需要更多细节,请告诉我。
【问题讨论】:
标签: rubygems ruby-on-rails-3.1 asset-pipeline ruby-on-rails-plugins