簡體   English   中英

在Windows和Linux / OS X的Gemfile中指定不同的Ruby版本(例如1.9.3和2.1)嗎?

[英]Specify different Ruby versions (e.g. 1.9.3 vs 2.1) in Gemfile for Windows and Linux/OS X?

我在Ruby on Rails項目中,我們有Windows和Linux計算機。 該項目使用Ruby 2.1,但作為Windows開發人員,我需要使用較低版本的Ruby(如ruby 1.9.3或Ruby 2.0)才能順利進行本地開發工作。

因此,為了自動基於平台為我的Rails項目實現自定義Ruby版本,我嘗試修改Gemfile以為每個平台隔離不同的Gems和Ruby版本:

platforms :ruby do # linux & Mac only
  ruby '2.1.0' #doesn't work, still tries to load ruby 1.9.3
  gem 'puma', '~> 2.7.1' #works
end

platforms :mswin do #Windows only
  ruby '1.9.3' #doesn't work, overrides Linux/mac users to Ruby 1.9.3 rather than 2.1
  gem 'thin' # works
end

platforms :rubyplatforms :mswin顯然僅適用於指定Gems,而不適用於指定Ruby版本。 如何設置本地Windows開發環境,以便可以在同一Gemfile中自動處理較低/不同的Ruby版本,而又不影響我的同事?

注意:

.rubyversion讀取2.1.0雖然我可以.gitignore來為每個環境指定該文件,但是Heroku要求我們在Gemfile中指定一個Ruby版本-因此我們需要某種方法在Gemfile級別上對此進行解析。

Gemfile是用Ruby實現的DSL,因此您可以在這里調用Ruby代碼:

ruby RUBY_PLATFROM =~ /win/ ? '1.9.2' : '2.1.0'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM