terraform -fmt --recursive 不做任何事情/不工作

pol*_*olo 5 terraform visual-studio-code terraform0.12+ terraform0.11

我使用 tfswitch 来使用不同的 terraform 版本。我正在我的 VSCode 中尝试这个

运行 terraform fmt --recursive 时,我的 terraform 文件实际上都没有被格式化。

例如terraform版本v0.11中的一些代码

environment             = "${var.environment}"
project_name            = "${var.project_name}"
Run Code Online (Sandbox Code Playgroud)

运行版本 0.12 的 terraform fmt 应将其更改为:

 environment             = var.environment
 project_name            = var.project_name
Run Code Online (Sandbox Code Playgroud)

但当我运行它时什么也没有发生。

我必须让其他人检查我的代码并为我运行它,从长远来看这并不理想。

这是 tfswitch 的问题,还是我的 terraform 有问题?它曾经有效,直到几周前才开始注意到这个问题,并且不确定从那以后发生了什么变化。我尝试重新安装 tfswitch 以查看是否修复了任何问题,但没有成功

小智 5

使用fmt-recursive标志的命令

terraform fmt -recursive
Run Code Online (Sandbox Code Playgroud)


Mat*_*ard 2

terraform fmt在 0.14 中实现了Terraform 的基于 HCL1 到 HCL2 DSL 的自动校正。因此,您将不会在 Terraform 0.12 中看到这些更改。

我已经用 0.12、0.13 和 0.14 进行了测试来验证,但更重要的是我们在 CHANGELOG 中看到这是在0.14.0中引入的。注意事项:

terraform fmt:现在将使用记录的惯用语法进行一些稍微固执己见的规范化行为。

另请注意在 0.14 中实现此功能的相关PR。如果“其他人”正在使用 观察此行为terraform fmt,那么他们正在使用 Terraform 0.14 或更高版本。