我想在本地查看我的包文档的外观。也就是说,我想看到你在 godoc.org 上看到的同样的东西,但是在本地。
我在本地有一个简单的示例文件夹,但我无法让它工作。它正确输出文本文档:
~/code/go/gonotes (master) $ godoc .
PACKAGE DOCUMENTATION
package gonotes
import "."
FUNCTIONS
func Blah()
Here is header
Blah is function being use to test:
- go documentation
- blah like things
It is nice
但是,如果我运行
godoc -http=:6060
,并导航到 http://localhost:6060/
,我会看到与 golang.com 主页上看到的内容基本相同的内容。 http://localhost:6060/gonotes
显示
lstat $GOROOT/gonotes: no such file or directory
我是否误解了
-http
的工作原理?有什么办法可以在本地预览我的文档的 http 版本吗?
我可以通过将文件复制到
src/gonotes
然后运行来让它显示:
GOPATH=/Users/jonah/code/go/gonotes godoc -http=:6060
这样实际文件就可以在
/Users/jonah/code/go/gonotes/src/gonotes
获得。
这有一个副作用,即不显示我默认安装的任何第三部分库
GOPATH
,所以我仍然想找到一个解决方案,只允许我按原样添加当前目录,而不添加src/curdir
到它,并且仍然显示它。
GOPATH
模式下godoc -http
将提供所有可用软件包的文档,包括标准库。不用担心,您自己的包裹也在其中,只需再看一下即可。作为快捷方式,只需输入 http://localhost:6060/pkg/your/package
。
GOPATH
和模块是互斥的,请参阅Go模块无法识别GOPATH下的文件。 godoc
工具不支持模块感知,并且它已被弃用(请参阅弃用警告),因此现在如果您想在 godoc
中本地查看模块的包文档,您必须将它们的源位于 src
文件夹中。
查看模块文档的“解决方法”:
将存储库放入类似
/some/folder/src
使用
godoc -goroot=/some/folder -http=:6060
查看相关问题:支持 Go 模块
还有小组讨论:go 1.11 godoc 工具“模块感知”吗?
在 2024 年,要在
godoc
模式下使用 GOPATH
,即使其同时服务于 $GOROOT
中的 stdlib 以及 $GOPATH
下的任何内容,您必须显式关闭模块模式:
GO111MODULE=off godoc -http=:6060