登录
首页 >  Golang >  Go问答

混乱的 go.mod 文件存在于包含 Typescript AWS-CDK 目录的 Go 项目

来源:stackoverflow

时间:2024-03-20 10:12:30 105浏览 收藏

Go 项目中存在混乱的 go.mod 文件,原因是包含了 TypeScript AWS-CDK 目录,其中定义了包含 Go 二进制文件的堆栈。理想情况下,此时 go.mod 应不包含任何依赖项。为了防止 go mod tidy 引用隐藏在 node_modules 路径中的 Go 文件,可以在子目录中创建空 go.mod 文件。这将排除该目录及其子目录,从而只包含项目实际使用的模块。

问题内容

我有一个 go 项目,其中包含 typescript aws-cdk 目录,用于定义包含 go 二进制文件的堆栈。

此示例最简单的项目是:

mkdir example
cd example
mkdir infrastructure
cd infrastructure
cdk init app --language typescript
cd ..
go mod init example
go mod tidy

此时,go.mod 充满了 aws-cdk-go 引用(尽管我使用的是 typescript)。理想情况下,go.mod 此时不应有任何依赖项。似乎有几个 go 文件埋在 node_modules/aws-cdk/.... 路径中,可能会影响 go mod tidy

我对使用 go cdk 库还没有兴趣。除了将我的所有 go 代码放入子文件夹中并仅在该子文件夹中运行 go mod init 之外,是否有办法阻止 go mod tidy 引用这些隐藏文件?


正确答案


https://github.com/golang/go/wiki/Modules#can-an-additional-gomod-exclude-unnecessary-content-do-modules-have-the-equivalent-of-a-gitignore-file

目录中的空 go.mod 将导致该目录和所有 其子目录被排除在顶级 go 模块之外。

infrastruct目录中,touch go.mod创建一个空文件,如果我在根文件夹中go mod tidy,则go.mod文件仅包含我的项目实际使用的模块。

go mod init looks for configuration files,如果找到,则安装模块。

通过在子目录中运行 go mod init [edit] before cdk init app 来避免这种“有用”行为:

# ...
npx cdk init app --language typescript
cd ..
mkdir src
cd src
go mod init example
go mod tidy
cd ..

这将创建一个空的 go.mod,正如预期的那样。

好了,本文到此结束,带大家了解了《混乱的 go.mod 文件存在于包含 Typescript AWS-CDK 目录的 Go 项目》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>