【问题标题】:View package documentation locally in a browser在浏览器中本地查看包文档
【发布时间】:2019-05-28 20:30:24
【问题描述】:

我想在本地查看我的包文档的外观。也就是说,我希望看到与您在 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 给它,它仍然显示出来。

【问题讨论】:

  • godoc -http 将提供所有可用包的文档,包括标准库。不用担心,您自己的包裹也在其中,请再看一遍。作为快捷方式,只需输入http://localhost:6060/pkg/your/package
  • @icza 谢谢。我尝试了http://localhost:6060/pkg/gonotes 并得到了cannot find package "." in: /src/gonotes。我需要将源文件放在src 下吗?目前它们只是在文件夹gonotes 中,您可以从我包含在 OP 中的终端会话中看到。
  • 为此,您的gonotes 包必须在GOPATH/src/gonotes 内。
  • 你不能把你的 Go 代码放到任意文件夹中。您必须遵循GOPATH 约定,有关详细信息,请参阅How to Write Go Code
  • @icza 这不是使用 go 模块的全部意义吗?所以你没有绑定到 GOPATH?

标签: go


【解决方案1】:

GOPATH 模式下

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

在模块感知模式下

GOPATH 和模块互斥,参见Go Modules does not recognize files under GOPATHgodoc 工具不支持模块,并且已被弃用(请参阅deprecation warning),所以现在如果你想在godoc 本地查看你的模块包文档,你必须求助于放置它们的源代码在src 文件夹中。

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

  • 将 repo 放入/some/folder/src之类的文件夹中

  • 使用 godoc -goroot=/some/folder -http=:6060 启动 godocs

查看相关问题:support Go modules

也可以分组讨论:Is the go 1.11 godoc tool 'module-aware'?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2017-05-28
    • 2012-06-16
    • 2012-04-10
    相关资源
    最近更新 更多