我正在向 CRAN 提交包,我收到了审阅者团队的以下警告:
Package 有一个 VignetteBuilder 字段,但没有预建的 vignette 索引。
事实上我在跑步时也看到了
devtools::release()
。我使用最后一个 R
版本作为 R version 3.3.1
并具有以下 .Rmd
小插图源:
---
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{<my vignette title>}
%\VignetteEngine{knitr::knitr}
%\usepackage[utf8]{inputenc}
---
此外,我已默认将
knitr
包含在 DESCRIPTION
文件中:
Suggests:
knitr
VignetteBuilder:
knitr
我环顾四周,虽然这个问题似乎很常见,但我无法理解为什么索引没有构建(以及如何强制构建它)。
这个问题和其中的链接是顶级谷歌结果,但不能解决问题。
这需要一个
build/vignettes.rds
或 Meta/vignettes.rds
文件。该文件由devtools
自动生成。请确保您不要删除它或将其列在.Rbuildignore
中(检查包含 build
Meta
或 ^build/vignettes.rds$
^Meta/vignettes.rds$
的行并将其从文件中删除)。
我有完全相同的错误。我对我的包进行了以下更改,这些更改之前已经建议过,但有些是在评论中,并且没有明确验证哪些有效,哪些无效。
首先,我对标头中的
vignette:
规范进行了更改,使其现在如下所示(请注意编码规范行中的差异,从 %\usepackage[utf8]{inputenc}
到 %\VignetteEncoding{UTF-8}
,它与 https:/ 中的方向匹配/bookdown.org/yihui/rmarkdown/r-package-vignette.html 似乎已经改变)
vignette: >
%\VignetteIndexEntry{The import package}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
如果没有这些更改,我会遇到问题,我会在本地或远程收到警告,但这使事情更加一致。
第二,可能也是最重要的,我从我的
^build
中删除了 .Rbuildignore
,重要的是,devtools
没有将其添加回来,所以我想知道这是否是一些遗留行为,或者我是否可能在某个时候自己添加它。我确实没有删除^Meta
(我尝试过,但是devtools
添加了忽略)。
这些更改一致地解决了该注释,并且该软件包现已发布:-)