当我使用 go get 安装包时,在 golang 模块模式下,这些安装在 go 根文件夹中。
我希望能够以 npm 或 yarn 为 node.js、全局或本地的相同方式安装模块。
实现这种行为的正确方法是什么。
谢谢。
正如其他人所提到的,您可以像这样创建模块文件:
go mod init [import path]
Run Code Online (Sandbox Code Playgroud)
之后,您可以随时运行此命令将所有依赖项移动到vendor目录中:
go mod vendor
Run Code Online (Sandbox Code Playgroud)
这与node_modules目录的行为非常相似。要使用此目录中的依赖项-mod vendor进行构建,您可以添加到您的构建命令中:
go build -mod vendor
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以将项目复制到任何机器上,而无需在另一台机器上获取任何东西。
根据docs,-mod=vendor如果go.mod文件中的 Go 版本是1.14或更高版本并且vendor目录存在,则该标志会自动设置。
要从vendor目录中清除未使用的依赖项,您可以运行
go mod tidy
Run Code Online (Sandbox Code Playgroud)