2013-03-30 59 views
2

我正在尋找一種方法來設置我的Rails應用程序/ Gem文件,以便有條件地包含基於我是否在Linux中的gem。我需要在Linux的應用程序,但它與Windows不兼容,無論如何我不需要它。在Windows和Linux中使用不同的gemfiles運行Rails應用程序

我能夠得到Linux上的所有東西,但由於我使用的是LESS樣式表,我需要一個JavaScript運行時。我不想安裝Node.js,所以我安裝了therubyracer,它現在在我的gemfile中。然後我將所有東西都推送到github上,並將應用程序克隆到我的Windows電腦上。

我試圖安裝所有的寶石,並意識到有沒有辦法上,因爲他們還沒有固定的不兼容Windows安裝therubyracer(見therubyracer gem on windows

我讀其他地方,我不需要therubyracer在Windows上,因爲rails會自動選擇JScript運行時,所以我想要一個簡單的方法來在linux中包含therubyracer。我在does using ":platforms =>" in your gemfile work?中讀到,我可以在我的gemfile中使用if塊,但它會導致我的gemfile.lock每次都會重新生成。儘管這是一年前的事。有沒有辦法只包括therubyracer而不重新生成gemfile.lock每次?或者,也許是gemfile.lock確定刪除我的git,並讓它每次在本地生成?

回答

1

我想你可能必須在平臺問題中使用這個答案,並忽略gemfile.lock被重新生成的事實。將鎖文件保存在存儲庫中沒有太多意義,因爲每個平臺上的鎖文件都不相同。但是,仍然可以通過手動指定gemfile中的特定版本和依賴關係來維護鎖文件提供的一些控制。

+0

好吧,如果這是一個很大的麻煩,我只會安裝virtualbox。這不是一個生產級別的應用程序或任何東西。我只是想用這些技術學習我的方式,但我希望能夠通過github讓其他人部署,如果他們願意的話。 – bdwain

+0

如果是這樣,我同意virtualbox是一個很好的解決方案。它可以讓你更容易地遵循常見的教程,並且你將避免其他Windows特有的寶石頭痛,肯定會彈出。 –

+0

甜。感謝您的信息 – bdwain

相關問題