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 按以下顺序加载:
- 与要用于给定机器的盒子一起打包的 Vagrantfile。
- Vagrant 主目录中的 Vagrantfile(默认为 ~/.vagrant.d)。
- 项目目录中的 Vagrantfile。
- 多机覆盖(如果有)。
- 提供商特定的覆盖(如果有)。
homestead Vagrantfile 是在第 3 步中加载的文件。如果您在第 1 步或第 2 步中有一个 Vagrantfile 设置了 $confDir
变量,那么 homestead Vagrantfile 将选择并使用它。
我正在剖析 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 按以下顺序加载:
- 与要用于给定机器的盒子一起打包的 Vagrantfile。
- Vagrant 主目录中的 Vagrantfile(默认为 ~/.vagrant.d)。
- 项目目录中的 Vagrantfile。
- 多机覆盖(如果有)。
- 提供商特定的覆盖(如果有)。
homestead Vagrantfile 是在第 3 步中加载的文件。如果您在第 1 步或第 2 步中有一个 Vagrantfile 设置了 $confDir
变量,那么 homestead Vagrantfile 将选择并使用它。