gpt4 book ai didi

go - 这个命令 'GOFLAGS=-mod=mod' 是做什么的?

转载 作者:行者123 更新时间:2023-12-02 15:58:37 35 4
gpt4 key购买 nike

我正在尝试制作一个 Taskfile.yml 文件来构建 go 应用程序,但我不太明白在 go build main.go 之前需要“GOFLAGS=-mod=mod”命令。

引用:https://dev.to/aurelievache/learning-go-by-examples-part-3-create-a-cli-app-in-go-1h43

最佳答案

所以这里有两件事

  • GOFLAGS
    • 这不过是一个环境变量(如果您不了解什么是环境变量,请将其想象成您当前环境中任何进程都可以访问的值。这些值由操作系统维护)。
    • 所以这个 GOFLAGS 变量有一个空格分隔的标志列表,这些标志将自动传递给适当的 go 命令。
    • 我们在这里设置的标志是mod,这个标志适用于go build命令,可能不适用于其他go命令。
    • 如果您想知道 go 是如何做到这一点的,refer to this change request
    • 由于我们将此作为命令的一部分提及,因此临时设置了此环境变量,实际上并未导出。
  • 设置 -mod=mod 标志在 go build 期间实际上做了什么?
    • -mod 标志控制 go.mod 是否可以自动更新以及是否使用 vendor 目录。
    • -mod=mod 告诉 go 命令忽略 vendor 目录并自动更新 go.mod,例如,当任何已知模块未提供导入的包时。
    • Refer this .

因此

GOFLAGS="-mod=mod" go build main.go

相当于

go build -mod=mod main.go

关于go - 这个命令 'GOFLAGS=-mod=mod' 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71121641/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com