gpt4 book ai didi

ruby-on-rails - 如何将 gem 卡住到 Rails 3 应用程序中?

转载 作者:行者123 更新时间:2023-12-03 13:40:25 27 4
gpt4 key购买 nike

我想将特定的 gem 卡住到我的 Rails 应用程序中。

在 rails 2 中有这个命令:

rake gems:unpack

我在 Rails 3 中找不到该命令。

最佳答案

所以,简短的回答是,你没有。

当你修改你的 Gemfile,然后运行 ​​bundle installbundle update ,bundler 为您处理依赖项解析,并确定满足整个依赖项链的每个 gem 的最佳(最新)版本(您不会获得破坏依赖项列表中另一个 gem 的新版本,等等) .当然,您也可以使用 config.gem 中熟悉的语法在 Gemfile 中放置特定版本,或 '>= 1.2.3' 规范或 whathaveyou。天,bundler 也将确保满足这一点(或者如果没有有效的解决方案,则不会生成 Gemfile.lock)。

当 Bundler 执行其业务时,它会创建 Gemfile.lock 文件,该文件(前提是您单独使用 bundler 来管理所有工作站/环境/部署上的 gem)执行与卡住您需要的所有 gem 相同的功能.免费! (将此文件检查到版本控制中!)如果您的新开发实习生在新机器上下载您的源代码,则需要一个 bundle install并且您安装的 gem 的完全相同版本在她的机器上。推送到部署,然后执行 bundle install --deployment那里(或者更有可能将其放入您的 Capfile 中),并安装相同的 gem(这次进入供应商/bundle ,可配置)。 Bundler 在 Rails 3 中用于管理所有 gem 的加载,所以无论你告诉 bundler 安装它们(无论你的正常 gem install 默认位置是什么,或 BUNDLE_PATH (如果记录在 .bundle/config使用 bundle install --path=foo 安装), bundler 将加载正确的,即使它们与系统 gem 不同。

您不需要解压 gem 并将它们 checkin 到您的应用程序中,因为这无关紧要:您保证无论安装在何处都会调用相同的版本,这可能会因机器而异(.bundle/不应该 checkin 到 repo 中) - 那么为什么要在你的 repo 中再添加 60-80 MB 的文件,而你永远不会更改或使用呢? (顺便说一句,这就是我不推荐 bundle install --path=vendor/gems like nfm suggested 的原因 - 这不一定是错误的,与正常的打包程序工作流程相比,它没有任何好处,现在你的 repo 大小刚刚膨胀)。

关于ruby-on-rails - 如何将 gem 卡住到 Rails 3 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3411522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com