Update
在工作状态下得到这个。宝石可以在这里找到:https://github.com/jakehockey10/popcircle https://github.com/jakehockey10/popcircle
原帖:
我正在尝试将 jquery 插件“gemify”作为一种学习体验。我使用的插件还取决于jquery.easing
,所以在宝石中vendor/assets/javascripts
文件夹,我两个都有jquery.easing.js
以及其他 jquery 插件。
这是我的宝石<name_of_gem>.rb
文件看起来像:
require '<name_of_gem>/version'
module <NameOfGem>
class Engine < ::Rails::Engine
class Engine < ::Rails::Engine
initializer '<name_of_gem>.assets.precompile' do |app|
app.config.assets.precompile += %w(
big_round.png
one.png
two.png
three.png
four.png
five.png
)
end
end
end
这是 gem 的当前结构:
.
├── bin
│ ├── console
│ └── setup
├── CODE_OF_CONDUCT.md
├── Gemfile
├── Gemfile.lock
├── lib
│ ├── <name_of_gem>
│ │ └── version.rb
│ └── <name_of_gem>.rb
├── LICENSE.txt
├── name_of_gem.gemspec
├── Rakefile
├── README.md
├── test
│ ├── <name_of_gem>_test.rb
│ └── test_helper.rb
└── vendor
└── assets
└── javascripts
├── jquery.easing.js
└── jquery.<name-of-gem>.js
在测试应用程序中使用 gem 时,我希望能够只需要 gem 像//= require <name-of-gem>
并足以将 gem 的供应商文件夹中的两个 javascript 文件加载到测试应用程序的资产管道中。然而,相反,我必须//= require jquery.easing
以及我的测试应用程序中的另一个文件。
有没有办法让我的 gem 将这些资产捆绑在一起,而不需要应用程序的开发人员单独需要这两个文件?
而不是我的测试应用程序中的这个application.js
:
//= require jquery-easing.js
//= require jquery.<name-of-plugin>.js
我想给开发者一个机会来表达这一点application.js
:
//= require <name_of_gem>