当我使用go get安装软件包时,在golang模块模式下,这些软件包将安装在go根文件夹中。
我希望能够以与npm或yarn对node.js(全局或本地)相同的方式安装模块。
什么是实现此行为的正确方法。
谢谢。
当我使用go get安装软件包时,在golang模块模式下,这些软件包将安装在go根文件夹中。
我希望能够以与npm或yarn对node.js(全局或本地)相同的方式安装模块。
什么是实现此行为的正确方法。
谢谢。
几乎没有什么不同的方法。根据github(gitlab等)当前提交的Go版本进行锁定。当您想使用特定版本的软件包而不是一直使用master版本时,您想使用go模块(这是官方的方法,但是还有其他一些工具)。您在项目中的初始化模块
go mod init [possible custom package name]
每次调用“获取软件包”时,它都会将使用的版本写到名为go.mod
的文件中。
您可以阅读更多here
,正如其他人所提到的,您可以像这样创建模块文件:
go mod init [import path]
之后,您可以随时运行此命令以将所有依赖项移至vendor
目录:
go mod vendor
这与node_modules
目录的行为非常相似。
要使用此目录中的依赖项进行构建,您需要向构建命令中添加-mod vendor
:
go build -mod vendor
通过这种方式,您可以将项目复制到任何计算机上,而无需在其他计算机上获取任何内容。
要从vendor
目录中清除未使用的依赖项,可以运行
go mod tidy
您可以在wiki
中找到更多信息