【问题标题】:Ruby: How can I verify my gemfile is correct?Ruby:如何验证我的 gemfile 是否正确?
【发布时间】:2013-10-27 01:19:55
【问题描述】:

请注意:应用程序 A、应用程序 B 和 GemX 仅用于帮助说明示例,它们不是真正的应用程序或 Ruby Gem。

我正在开发“应用程序 A”。在我的本地开发环境中,我安装了我需要的所有 gem。

然后,我开始开发“应用程序 B”。应用程序 B 需要应用程序 A 在添加“宝石 X”时使用的所有宝石。

我在本地开发环境中执行了 ruby​​ install gemx,但由于心不在焉,我忘记将 gemx 条目添加到我的 gemfile 中。

我将我的 ruby​​ 源代码发送到其他地方(例如,发送给想要使用应用程序 B 或生产环境的朋友)。但是应用程序失败了,因为它依赖于 gemx,但 gemx 没有作为捆绑的一部分安装。

如何在本地开发环境中测试我的 gemfile 是否正确?我认为有比在本地开发环境中执行以下操作更简单的方法

  1. 卸载我的依赖项
  2. 使用捆绑器重新安装我的所有依赖项
  3. 运行应用以确保已安装所有依赖项

【问题讨论】:

    标签: ruby bundler gemfile


    【解决方案1】:

    如果您正确使用 Bundler,这应该不是问题,因为它修改了 $LOAD_PATH,因此只能需要 Gemfile 中列出的 gem。确保您正在调用:

    require 'bundler'
    Bundler.setup
    

    在您的代码中的某处。在某些情况下(尤其是 gem),这可能只在测试中。在应用程序本身中,它通常位于您的“启动”文件中。

    【讨论】:

    • 不确定我是否理解“正确使用捆绑程序”的含义。这是否意味着我应该说“需要捆绑器;Bundler.setup”而不是“需要 gem1_x、gem_y、gem_z)?
    • 两者。 Bundler.setup 只是正确设置了加载路径(并且必须先完成)。见bundler.io/v1.3/bundler_setup.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2013-06-11
    • 2016-10-21
    • 2023-03-17
    • 2023-03-25
    • 1970-01-01
    • 2017-12-11
    相关资源
    最近更新 更多