【问题标题】:How do I not bundle package :path gems?我如何不捆绑包:路径宝石?
【发布时间】:2013-11-05 00:07:33
【问题描述】:

在我们的项目中,我们运行 捆绑包 --all 有一次,根据文档,它会在后续调用中记住“--all”选项。如果我想通过硬编码来测试项目中的 gem,它是 Gemfile 的路径,例如: gem 'blocks', :path => "/Users/hunterae/Projects/blocks", 每当我运行 bundle install 时,这个 gem 的所有源代码都会被复制到我的 /vendor/cache 目录中。这意味着如果我对正在测试的 gem 进行更改,我必须关闭我的 rails 服务器并再次运行 bundle install,而在运行“bundle package --all”之前,我曾经能够停止并启动我的 Rails 服务器。

我的问题是如何让“捆绑包”再次仅打包 gems 而不是尝试缓存 :path gems? bundler 中记住的“--all”选项在哪里?

【问题讨论】:

    标签: ruby-on-rails bundler


    【解决方案1】:

    在您的项目目录中的.bundle/config 中查找显示BUNDLE_CACHE_ALL: true 的行。

    删除该行以使其恢复为仅包装标准宝石。

    一般来说,记住的选项存储在.bundle/config

    【讨论】:

      【解决方案2】:

      +1 给 Tim Moore 的答案。以下是对它的补充。

      如果可能,如果使用 github 上的 gem,你应该避免在 Gemfile 中使用 :path。从 Bundler 1.9 开始,您可以使用 sth。喜欢

      bundle config local.name_of_gem /path/to/checked_out/repo
      

      这将在 ~/.bundle/config 中添加一个条目,如

      less ~/.bundle/config
      ---
      BUNDLE_LOCAL__NAME_OF_GEM:     
      "/path/to/checked_out/repo/name_of_gem"
      

      您可以使用相同的命令删除配置,包括 --delete like

      bundle --delete config local.name_of_gem /path/to/checked_out/repo
      

      这样可以避免很多问题,并且易于维护。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        • 2012-03-02
        • 2015-07-17
        • 1970-01-01
        • 2013-04-19
        • 2015-09-02
        • 2013-02-09
        相关资源
        最近更新 更多