问题
我为公司创建了一个小的内部程序包。为了描述使用它的热度,我写了一个小插图。但是由于某些原因,当我在RStudio中单击“安装并重新启动”时,该小插图并未构建。
更多的信息
==> devtools::document(roclets=c('rd', 'collate', 'namespace'))
Updating DataReportR documentation
Loading DataReportR
Documentation completed
==> Rcmd.exe INSTALL --no-multiarch --with-keep.source DataReportR
* installing to library 'C:/Program Files/R/library'
* installing *source* package 'DataReportR' ...
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (DataReportR)
devtools::build_vignettes()
返回NULL
,即使这些行Suggests: knitr, rmarkdown
VignetteBuilder: knitr
包含在DESCRIPTION中。
---
title: "My title"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Generate LaTeX tables for Data Reports}
%\VignetteEngine{rmarkdown::render}
%\usepackage[utf8]{inputenc}
---
devtools::build(vignettes = TRUE)
强制构建小插图,但未进行任何更改。 编辑(已更改的YAML header ):
当我在小插图的YAML header 中将
%\VignetteEngine{rmarkdown::render}
更改为%\VignetteEngine{knitr::rmarkdown}
时,devtools::build_vignettes()
起作用并将生成的小插图放置在/inst/doc/
中。但是,当我在RStudio中检查软件包时,在此位置检查失败:
** installing vignettes
** testing if installed package can be loaded
Error in namespaceExport(ns, exports) :
undefined exports: create_var_details, create_var_overview
Error: loading failed
Execution halted
ERROR: loading failed
create_var_details
和create_var_overview
都是导出函数。这里是一个例子:...
#' @export
#'
create_var_details <- function(...
...
使用旧的 header ,检查很好。
最佳答案
我发现R找不到pandoc
。因此,我将pandoc
路径添加到PATH
环境变量。我还按照@ R18的注释中的建议将小插图enginge更改为%\VignetteEngine{knitr::rmarkdown}
。
现在,当我单击RStudio中的“安装并重新启动”时,小插图已正确构建。
但是,检查软件包仍然不起作用。看到我对这个问题的 EDIT 。但这是另一个问题:R package: Adding a vignette causes 'undefined exports'