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

Go project containing Typescript AWS-CDK directory has cluttered go.mod file

我有一个包含 Typescript AWS-CDK 目录的 Go 项目来定义包含 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 此时不应有任何依赖关系。 node_modules/aws-cdk/.... 路径中似乎埋藏了几个可能影响 go mod tidy.

的 Go 文件

我还没有兴趣使用 Go CDK 库。除了将我所有的 Go 代码放入一个子文件夹中并且在该子文件夹中只有 运行 go mod init 之外,有没有办法防止 go mod tidy 引用那些隐藏的文件?

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

通过 运行 go mod init [编辑] 在子目录中的 cdk init app 之前避免这种“有益”行为:

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

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

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

An empty go.mod in a directory will cause that directory and all of its subdirectories to be excluded from the top-level Go module.

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