【发布时间】:2018-03-08 11:19:33
【问题描述】:
问题
我为我的公司创建了一个小型内部包。为了描述热使用它,我写了一个小插曲。但由于某种原因,当我在 RStudio 中点击 Install and Restart 时,没有构建小插图。
更多信息
我使用 roxygen 作为包文档
-
有趣的是,Install and Restart 的输出表明它已安装:
==> 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包含在说明中。
-
小插图的 YAML 标头如下所示:
--- 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 标头):
当我将小插图的 YAML 标头中的 %\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(...
...
使用旧标题,检查没问题。
【问题讨论】:
-
你可以尝试写
%\VignetteEngine{knitr::rmarkdown}而不是%\VignetteEngine{rmarkdown::render}吗?我之前也创建了一个小包,这就是我的独特之处。 -
@R18:这会在
devtools::check():** testing if installed package can be loaded Error in namespaceExport(ns, exports) : undefined exports: create_var_details, create_var_overview期间导致错误。但是这些功能是导出的...另外,我在另一个项目中使用%\VignetteEngine{rmarkdown::render}没有问题。 -
您的代码中有
create_var_details和create_var_overview函数或对象吗? -
导出的函数。来自命名空间:
# Generated by roxygen2: do not edit by hand export(create_var_details) export(create_var_overview) -
我记得有一次,当我删除
roxygen2generates 的文件并再次运行它工作的代码并再次生成文件时。可能不是这样,。 . .