如何使用备用 go.mod 文件进行本地开发?

sla*_*gan 7 local go serverless go-modules

目前我正在开发一个使用 Serverless Framework 和 Go 的 API。

我正在使用 Serverless-offline 插件进行本地测试。

该 API 依赖于其他一些存储库(我也维护这些存储库),我使用该go.mod文件导入这些存储库。

然而,我很难完善我的开发人员工作流程。

目前,如果我想对此 API 所依赖的存储库进行更改,我必须更改项目go.mod以包含替换指令以进行测试,但随后我必须手动将其更改回以部署到生产环境。

基本上我正在寻找一种包含替换指令的方法,该指令仅在本地开发期间应用。其他人都是如何处理这个问题的?

额外问题:有什么方法可以在 docker 中离线运行 Serverless 吗?我发现在裸机上运行的无服务器离线会导致不同开发人员环境之间的不一致。

bla*_*een 7

您可以使用以下选项go使用备用go.mod文件运行命令-modfile

\n

来自构建命令

\n
\n

-modfile=file.mod标志指示 go 命令读取(并且可能写入)备用文件,而不是go.mod模块根目录中的文件。文件\xe2\x80\x99s 名称必须以.mod. 名为\n的文件go.mod必须仍然存在才能确定模块根目录,\n但无法访问该文件。指定时,还会使用-modfile备用文件:其路径是通过修剪 .mod 扩展名并附加 .sum 从标志派生的。go.sum-modfile

\n
\n

创建一个local.go.mod包含开发和构建所需replace指令的文件,例如:

\n
go build -modfile=local.go.mod ./...\n
Run Code Online (Sandbox Code Playgroud)\n