Laravel Homestead 的 Vagrantfile:应该在哪里设置 $confDir?

Laravel Homestead's Vagrantfile: where is $confDir supposed to be set?

我正在剖析 Laravel Homestead 的配置。在 Vagrantfile 中有以下行:

confDir = $confDir ||= File.expand_path("vendor/laravel/homestead")

$confDir 在该行之前的任何地方都没有提到。它的价值是零,我想知道什么会给它一个价值?来自 CLI 的东西?

Vagrantfile 只是一个 ruby 脚本。在ruby中,美元符号变量是全局变量。

现在,仅查看宅基地 Vagrantfile 时,这仍然没有多大意义。然而,这可能不是唯一在使用的 Vagrantfile。如 vagrant 文档 here 中所述,在 "LOAD ORDER AND MERGING" 下,Vagrantfiles 按以下顺序加载:

  1. 与要用于给定机器的盒子一起打包的 Vagrantfile。
  2. Vagrant 主目录中的 Vagrantfile(默认为 ~/.vagrant.d)。
  3. 项目目录中的 Vagrantfile。
  4. 多机覆盖(如果有)。
  5. 提供商特定的覆盖(如果有)。

homestead Vagrantfile 是在第 3 步中加载的文件。如果您在第 1 步或第 2 步中有一个 Vagrantfile 设置了 $confDir 变量,那么 homestead Vagrantfile 将选择并使用它。