为什么rails默认忽略.bundle?

Joh*_*hir 7 ruby-on-rails bundler

是不是项目.bundle/config指定与项目相关的配置?

Dev*_*n M 12

bundle-config 联机帮助页上说:

此命令允许您与bundler的配置系统进行交互.Bundler按照优先级顺序从本地应用程序(app/.bundle/config),环境变量和用户的主目录(〜/ .bundle/config)检索其配置.因此,请确保您没有任何优先于您要使用的配置文件的配置文件.

您可以自己配置此文件或使用设置选项bundle config (option),在bundle config没有任何选项的情况下运行打印当前配置.例如,您可以为mysql gem设置编译时选项,如下所示:

bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)

所以是的,app/.bundle/config用于为当前项目设置包选项.

编辑: 此更改已在提交efa85055中添加到Rails github repo.您可以在此处查看该文件的版本以及此处提交.

提交消息来自JoséValim,并提到您对以下问题提出的问题:

使bin/rails调用rails /命令/应用程序,修复生成器使用情况并更新.gitignores.

再次编辑: 这是来自bundler报价,说明为什么不应该将.bundle目录检入任何VCS.

不要检入.bundle目录或其中的任何文件.这些文件特定于每台特定计算机,用于在bundle install命令的运行之间保留安装选项.

  • 刚刚找到了选择背后的推理.`.bundle`不是每个应用程序配置,它用于保持安装选项,文件是每台机器特定的. (3认同)
  • 它是每台机器,也是每个项目.也就是说,你可以有一个全局的〜/ .bundle/config来确保某些gems总是使用一个特定的选项,但你可以在app/.bundle/config级别覆盖它们,以防你以特定的方式构建gem.项目. (2认同)