在Windows和Linux中使用不同的gemfiles运行Rails应用程序

时间:2013-03-30 03:00:15

标签: ruby-on-rails gemfile

我正在寻找一种方法来设置我的rails app / Gem文件,根据我是否在linux中有条件地包含一个gem。我需要Linux中的应用程序,但它与Windows不兼容,无论如何我都不需要它。

我能够在Linux上运行一切,但由于我使用的是LESS样式表,我需要一个javascript运行时。我不想安装Node.js,所以我安装了therubyracer,它现在在我的gemfile中。然后我将所有内容推送到github并在我的Windows计算机上克隆应用程序。

我试图安装所有的宝石,并意识到没有办法在Windows上安装therubyracer,因为它们还没有固定不兼容(参见therubyracer gem on windows

我在别处读到我不需要在windows上使用therubyracer,因为rails会自动选择JScript运行时,所以我想有一个简单的方法只在linux中包含therubyracer。我在does using ":platforms =>" in your gemfile work?中读到我可以在我的gemfile中使用if块,但是每次都会重新生成我的gemfile.lock。那是一年多以前的事了。有没有办法只包括therubyracer而不是每次都重新生成gemfile.lock?或者也许是gemfile.lock确定删除我的git并且每次都在本地生成它?

1 个答案:

答案 0 :(得分:1)

我认为您可能必须在:platforms问题中使用该答案,并忽略gemfile.lock重新生成的事实。将锁文件保存在存储库中并没有多大意义,因为每个平台上的锁文件都不同。但是,您仍然可以通过在gemfile中手动指定特定版本和依赖项来维护lockfile提供的一些控件。