Проект Go, содержащий каталог Typescript AWS-CDK, имеет загроможденный файл 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 не должно иметь никаких зависимостей на данный момент. Похоже, что в пути node_modules/aws-cdk/.... скрыто несколько файлов Go, которые могут влиять на go mod tidy.

Я пока не заинтересован в использовании библиотек Go CDK. Помимо того, что я помещаю весь мой код Go в подпапку и запускаю только go mod init в этой подпапке, есть ли способ запретить go mod tidy ссылаться на эти спрятанные файлы?

Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
1
0
31
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

go mod initищет файлы конфигурации и, если он найден, устанавливает модули.

Избегайте этого «полезного» поведения, запустив go mod init [Изменить] перед приложением инициализации cdk в подкаталоге:

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

Это создает пустой go.mod, как и ожидалось.

go mod tidy — это шаг, который приводит к тому, что все модули cdk отображаются в файле go.mod. Когда я go mod init, у него нет этих модулей.
Tim Reddy 04.05.2022 17:27

@TimReddy - Ты прав. Я отредактировал ответ. На этот раз подтвердил ожидаемый результат с go mod tidy ;)

fedonev 04.05.2022 18:01
Ответ принят как подходящий

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.

В каталоге infrastructuretouch go.mod создает пустой файл, и если я go mod tidy в корневой папке, файл go.mod содержит только те модули, которые на самом деле использует мой проект.

Другие вопросы по теме