R中没有可用的包vignettes。

4
我正在构建一个R包。
我有一个位于 `vignettes/mydoc.Rmd` 的 rmarkdown 文件。
使用 `devtools::build_vignettes()` 会在 `inst/doc` 中生成文件。
当我使用 `R CMD build .` 时,没有任何警告或错误出现。
然而,当我从R内部使用 `vignette()` 时,我看不到任何关于该包的vignette。
我的 `DESCRIPTION` 文件中包含:
Suggests: knitr,
    rmarkdown,
VignetteBuilder: knitr

你是否运行了 devtools::use_vignette 或手动编辑了 DESCRIPTION 文件以说明有一个vignette? - Gregor Thomas
我只使用了 build_vignette()。午餐后我会尝试 use - Richard
use_vignette() 没有对 DESCRIPTION 文件产生任何变化,与我已经存在的内容相同。我已经编辑了我的问题来展示这一点。 - Richard
在 Github 存储库中包含 inst/doc 目录确实会使得文档可用。但我不清楚为什么 R CMD INSTALL .R CMD build . 不会创建此目录。 - Richard
我以为你已经在inst/doc中有了vignette... Github应该只是这个过程的附带。 - Gregor Thomas
显示剩余5条评论
2个回答

5

目前不清楚你是如何/是否在步骤之间进行安装。我会引用Hadley的《R Packages》网站上的内容,其中涉及到“文档”一章,主要包括“开发周期”部分:

To create your first vignette, run:

devtools::use_vignette("my-vignette")
This will:
  1. Create a vignettes/ directory.

  2. Add the necessary dependencies to DESCRIPTION (i.e. it adds knitr to the Suggests and VignetteBuilder fields).

  3. Draft a vignette, vignettes/my-vignette.Rmd.

以上可以手动完成,也可以通过use_vignette()命令完成,但必须完成。
撰写vignette后,需要构建它。

你可以使用devtools::build_vignettes()从控制台构建所有vignette,但这很少有用。相反,请使用devtools::build()创建包含vignette的软件包捆绑包。RStudio的“Build & reload”为了节省时间而不会构建vignette。同样,devtools::install_github()(以及相关工具)默认情况下不会构建vignette,因为它们耗费时间并且可能需要额外的软件包。您可以使用devtools::install_github(build_vignettes = TRUE)强制构建。这也将安装所有建议的软件包。

我认为devtools::install()将包括任何已经构建的vignette,只有在你想在安装时重新构建它们时才需要额外的参数。
R CMD BUILD创建一个tarball,不会修改您的开发目录,R CMD INSTALL将程序包安装到您的库中,也不会修改您的开发目录。
对于开发,当您想要重建vignette并安装程序包时,只需使用devtools::install(..., build_vignettes = T)即可。
当您准备发布到CRAN时,您真正只需要构建软件包本身(根据您的系统生成zip或tarball),在那时,我将使用devtools::build(..., vignettes = T)作为R CMD BUILD的包装器,但这只是个人偏好。

实际上,我以为vignettes是由R CMD BUILD .生成的,但使用devtools::build(vignettes=TRUE)确实很有效。 - Richard

1
我一直遇到非常不稳定的问题。
R CMD build myPackage
R CMD INSTALL myPackage

有时安装vignettes,有时则不会。
devtools::install(build_vignettes = TRUE) 看起来是一种更为可靠的替代方案。它还具有更新与安装相关的过时软件包的优点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接