R CMD构建跳过knitr / Rmd vignettes - “build / vignette.rds”中列出的输出,但不包含在“包中”

时间:2014-06-26 17:40:32

标签: r knitr cran r-markdown

我已经为R包构建了一个rmarkdown教程,并希望在构建包时包含已编译的文件。虽然文件编译得很愉快(包括我使用R CMD Sweave时这样做),但我似乎无法将其包含在二进制文件中。

具体来说,当我运行R CMD BUILD时,我得到了

* checking for file ‘./DESCRIPTION’ ... OK
[snip]
* installing the package to build vignettes
* creating vignettes ... OK
* checking for empty or unneeded directories
Removed empty directory ‘rentrez/inst/doc’
Removed empty directory ‘rentrez/inst’
Removed empty directory ‘rentrez/vignettes/assets’
Removed empty directory ‘rentrez/vignettes’
* building ‘rentrez_0.2.4.tar.gz’

但是在安装此二进制文件并运行vignette(package="rentrez")之后,该程序包没有晕影。

那么,我做错了什么?

如果有帮助,库的this branch包含对程序包的插图和相关编辑。 file itself位于vignettes/目录中,以

开头
<!--
%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{rentrez tutorial}
-->

DESCRIPTION文件包含这些行

Suggests:
    testthat,-
VignetteBuilder: knitr

修改

我应该考虑在构建的包上运行R CMD CHECK

Output(s) listed in 'build/vignette.rds' but not in package:
  ‘inst/doc/rentrez_vignette.html’

据我所知,build/vignette.rds是由R CMD BUILD创建的,但我并不知道为什么它指向inst/doc(即使这个目录在包之前被删除建成了)

2 个答案:

答案 0 :(得分:7)

问题是您的rentrez_*中有.Rbuildignore且与插图的名称相符。 .Rbuildignore中的行应该看起来像

^staticdocs$

staticdocs

答案 1 :(得分:4)

您应该删除inst/doc/。所有的小插曲都应该只在vignettes/之下。要记住的另一件事是,您应该只在vignettes下保留源文档,并且所有生成的文件都不应该在那里,例如HTML输出。虽然它肯定不是最好的例子,但您可以随时查看 knitr 如何构建its own vignettes