问题

我为公司创建了一个小的内部程序包。为了描述使用它的热度,我写了一个小插图。但是由于某些原因,当我在RStudio中单击“安装并重新启动”时,该小插图并未构建。

更多的信息

  • 我将roxygen用于软件包说明文件
  • 有趣的是,“安装并重新启动”的输出表明已安装:
    ==> 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中。
  • 小插图的YAML header 如下所示:
    ---
    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_detailscreate_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'

    10-08 17:17