https://github.com/leecade/vgo_example
https://github.com/leecade/vgo_example
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/leecade/vgo_example
- Owner: leecade
- Created: 2018-02-26T05:40:03.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-26T06:21:01.000Z (over 8 years ago)
- Last Synced: 2025-07-07T11:41:19.329Z (about 1 year ago)
- Language: AMPL
- Size: 834 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 版本要求
go1.10+
## 安装
```sh
$ go get -u golang.org/x/vgo
```
## 常用命令
```sh
$ vgo list -m # 查看所有依赖
$ vgo list -m -u # 查看所有依赖同时检查更新,会打印出最新版本和当前版本
$ vgo test all # 执行所有测试,包括依赖包的测试
$ vgo test http://rsc.io/sampler # 执行指定包测试
$ vgo get -u # 更新所有依赖
$ vgo list -t http://rsc.io/sampler # 检查指定包所有可用的版本 即tag
$ vgo get http://rsc.io/sampler@v1.3.1 # 获取指定版本,并修改go.mod
$ vgo vendor # 退到vendor 兼容不使用vgo的用户
...
```
## 使用
根目录创建 `go.mod` 标示项目根目录, 终结了 `GOPATH` 作为 Go 代码工作空间的设置, `go.mod` 文件包含了完整的模块路径并且定义了每个使用的依赖的版本, 因此包含 `go.mod` 文件的目录就可以被认为是一个目录树的根目录了, 该目录树作用于自身的工作空间,并且和其他类似的目录彼此隔离
```sh
$ touch go.mod
```
```
# 用 `// import` 注释 vgo 模块的 "导入路径名称"
package main // import "github.com/you/hello"
```
执行 `vgo build` 后自动生成依赖关系到 `go.mod`
```
module "github.com/leecade/vgo_example"
require "rsc.io/quote" v1.5.2
```
`go.mod` 文件包含了模块所依赖包的最小版本. 如果模块没有提供一个tag版本, 对于未命名的提交, `v0.0.0-yyyymmddhhmmss-commit` 表示一个指定日期的提交.
`go.mod` 文件还可以实现排除和替换的版本, 需手动修改go.mod文件:
```
exclude "rsc.io/sampler" v1.99.99
replace "rsc.io/quote" v1.5.2 => "../quote"
```
## 问题
- github api 超限
```
import "rsc.io/quote": unexpected status (https://api.github.com/repos/rsc/quote): 401 Unauthorized
```
在 github "Settings > Developer settings > Personal access tokens > Generate new token" 创建新 token, 更新到 `~/.netrc`
```
machine api.github.com
login ACCOUNT
password TOKEN
```