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

bad*_*ger 5 ruby vagrant laravel homestead

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

confDir = $confDir ||= File.expand_path("vendor/laravel/homestead")
Run Code Online (Sandbox Code Playgroud)

$confDir在那条线之前没有提到过.它的价值是零,我想知道什么会给它一个价值?来自CLI的东西?

pat*_*cus 4

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

现在,仅看 homestead Vagrantfile 仍然没有多大意义。然而,这可能不是唯一使用的 Vagrantfile。如 vagrant 文档中所述在“加载顺序和合并”下,Vagrantfiles 按以下顺序加载:

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

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