我正在尝试将bootstrap-sass gem包装在另一个gem中(让我们称之为my-engine).在此过程中,我正在构建一个小型Rails应用程序来测试.作为第一步,我想确保我可以直接在我的Rails应用程序中使用bo
gem 'bootstrap-sass', '3.3.1.0' gem 'my-engine, path: "~/dev/my-engine"
这很好用.引导资产被加载到我的Rails应用程序中,一切看起来都不错.现在,我想从我的Rails应用程序中取出bootstrap-sass并让它通过我的引擎加载.所以,我的Rails应用程序Gemfile现在看起来像:
gem 'my-engine, path: "~/dev/my-engine"
我的引擎的.gemspec有:
spec.add_runtime_dependency 'bootstrap-sass', '3.3.1.0'
我可以毫无问题地重新捆绑我的引擎宝石.我可以毫无问题地重新捆绑Rails应用程序.但是,当我刷新Rails应用程序的页面时,我收到以下错误:
File to import not found or unreadable: bootstrap-sprockets.
当sprockets尝试构建application.css文件时,会发生这种中断.有时这会通过,我会在构建application.js时得到一个关于错过bootstrap.js javascript文件的错误.
为什么会这样?我想知道它是否与我在本地开发宝石并且尚未发布它们的事实有关,尽管我不确定为什么这会影响已发布的bootstrap-sass.我正在使用bundler 1.5.3.
确保引擎中需要’bootstrap-sass’.一个明智的地方是你的lib / my-engine.rb文件:require 'bootstrap-sass'
当你试图包装gems时,在.gemspec中添加bootstrap-sass gem作为运行时依赖是不够的.