在浏览器中本地查看包文档

问题描述 投票:0回答:2

我想在本地查看我的包文档的外观。也就是说,我想看到你在 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 
到它,并且仍然显示它。

go
2个回答
10
投票

GOPATH
模式下

godoc -http
将提供所有可用软件包的文档,包括标准库。不用担心,您自己的包裹也在其中,只需再看一下即可。作为快捷方式,只需输入
http://localhost:6060/pkg/your/package

在模块感知模式下

GOPATH
和模块是互斥的,请参阅Go模块无法识别GOPATH下的文件
godoc
工具不支持模块感知,并且它已被弃用(请参阅弃用警告),因此现在如果您想在
godoc
中本地查看模块的包文档,您必须将它们的源位于
src
文件夹中。

查看模块文档的“解决方法”:

  • 将存储库放入类似

    /some/folder/src

  • 的文件夹中
  • 使用

    godoc -goroot=/some/folder -http=:6060

  • 启动 godocs

查看相关问题:支持 Go 模块

还有小组讨论:go 1.11 godoc 工具“模块感知”吗?


0
投票

在 2024 年,要在

godoc
模式下使用
GOPATH
,即使其同时服务于
$GOROOT
中的 stdlib 以及
$GOPATH
下的任何内容,您必须显式关闭模块模式:

GO111MODULE=off godoc -http=:6060
© www.soinside.com 2019 - 2024. All rights reserved.