I have a Go project containing a Typescript AWS-CDK directory to define the Stack that contains the Go binary.
The simplest project for this example is:
mkdir example
cd example
mkdir infrastructure
cd infrastructure
cdk init app --language typescript
cd ..
go mod init example
go mod tidy
At this point, go.mod
is full of aws-cdk-go
references (despite the fact I'm using Typescript). Ideally, go.mod
shouldn't have any dependencies at this point. It appears that there are several Go files buried in the node_modules/aws-cdk/....
path that may be influencing go mod tidy
.
I'm not yet interested in using the Go CDK libraries. Besides throwing all of my Go code into a subfolder and only running go mod init
in that subfolder, is there a way to prevent go mod tidy
from referencing those buried files?
CodePudding user response:
go mod init
looks for configuration files and, if found, installs the modules.
Avoid this "helpful" behaviour by running go mod init
[Edit] before cdk init app in a subdirectory:
# ...
npx cdk init app --language typescript
cd ..
mkdir src
cd src
go mod init example
go mod tidy
cd ..
This creates an empty go.mod
, as expected.
CodePudding user response:
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.
In the infrastructure
directory, touch go.mod
creates an empty file and if I go mod tidy
in the root folder, the go.mod
file only contains the modules my project actually uses.