我正在开发Rails 3.1,并使用默认的uglifier资产宝石。该gem依赖于execjs,这需要JavaScript运行时。我在Mac OSX上开发,所以我从来没有遇到过麻烦。另一位开发人员使用Linux,默认情况下它没有JavaScript运行时。因此,使用therubyracer,嵌入在Ruby中的JavaScript运行时,效果很好,但是我希望Bundler只有在系统是Linux时才安装它。我可以在Gemfile中指定它,所以它只能安装在Linux而不是Mac?捆绑软件可以将宝石安装限制到某个操作系统吗?
4
A
回答
6
你可以做;
gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
取代你的情况下适当的宝石和平台。
3
这种方法的问题是,如果OS X系统更新Gemfile.lock,那么将包括gem。如果其他开发人员更新gemfile中的任何gem,这会成为问题,因为bundler在计算依赖关系时不会包含gem。
我对解决此类问题的方法是手动安装我想要的宝石,然后需要两个:
begin
require 'os-x-gem'
rescue LoadError
end
begin
require 'linux-gem'
rescue LoadError
end
+0
但是这会失败,如果用户在Linux上,因为'require'os-x-gem“'会导致加载错误并且永远不会需要linux gem。这两个宝石都需要自己的开始救援块。 – rubish
+0
优点,我错过了。我更新了示例以更正此问题。 –
相关问题
- 1. 捆绑安装仍然不工作后,宝石安装捆绑软件
- 2. 红宝石工作流 - 捆绑安装
- 3. 宝石未安装捆绑安装
- 4. 宝石安装捆绑&&捆绑安装错误
- 5. 将捆绑宝石提炼成系统宝石
- 6. 捆绑器可以从一个裸git回购安装宝石?
- 7. 为什么Capistrano没有安装捆绑软件的宝石?
- 8. 捆绑软件安装权限问题
- 9. MacPorts是否真的需要安装已与操作系统捆绑的软件?
- 10. 与捆绑软件一起安装宝石时传递安装标志
- 11. JRuby的捆绑安装不宝石“scrypt”
- 12. 错误红宝石捆绑安装
- 13. 错误捆绑安装“yajl红宝石”
- 14. 宝石安装好,但没有捆绑
- 15. 红宝石捆绑安装错误
- 16. 红宝石捆绑安装前缀
- 17. 是否可以从本地缓存中捆绑/安装宝石?
- 18. 关系捆绑和宝石
- 19. 如何安装(红宝石)捆绑时,捆绑被打破
- 20. 捆绑安装后不在当地宝石中的宝石
- 21. 宝石:: RemoteFetcher :: FetchError与安装捆绑宝石
- 22. 安装本地红宝石的宝石,使用捆绑
- 23. 红宝石捆绑安装木偶宝石
- 24. 在MAC操作系统中安装红宝石linalg失败
- 25. '宝石更新 - 系统'会让我以前安装的宝石不兼容吗?
- 26. Ruby(捆绑包安装,捆绑包更新)FAILS无法安装宝石http_parser.rb,eventmachine
- 27. 捆扎机找不到安装宝石
- 28. 捆绑安装与kgio麒麟宝石失败安装
- 29. ROR捆绑安装时不会安装缺少的宝石
- 30. 我可以将本机操作系统安装作为虚拟机操作系统运行吗?
这仍然安装的宝石,是不是?如果不是Linux,我正在寻找一种在'bundle install'中跳过它的方法。 –
@Jonathan C.我不认为它会,你试过吗? – rubish
@rubish是的,它仍然安装它。 ':require => false'仅用于防止打包程序在运行时需要该库,即您需要在自己的代码中手动执行。 –