首页 > 解决方案 > 构建 Vignette - R 包开发时出错

问题描述

如果这是一个明显的问题,我提前道歉,但我已经搜索了堆栈溢出以及其他非常有用的资源,例如Hadley Wickham 的R 包或这个博客,但找不到答案。

尝试build_vignettes()在我开发的 R 包 ( myPackage) 上运行时出现我的问题。包 ( myPackage.Rmd) 的小插图将使用 RStudio 中的 knit 按预期创建,但是当我运行时build_vignettes(),出现以下错误:

> devtools::build_vignettes()
Building cosni vignettes
--- re-building ‘myPackage.Rmd’ using rmarkdown
--- finished re-building ‘myPackage.Rmd’

Error: Directory '✓ Setting active project to \'path/to/package/directory/'' does not exist.

我的 myPackage.Rmd 文件的顶部是:

---
title: "A title"
date: "`r Sys.Date()`"
author: "Name"
output:
  html_document:
    toc: true
    toc_float: true
    number_sections: true
    theme: "paper"
  pdf_document:
    toc: true
vignette: >
  %\VignetteIndexEntry{A title}
  %\VignetteEngine{knitr::rmarkdown}
  \usepackage[utf8]{inputenc}
---

该文件位于我的包文件夹的 vignettes 文件夹中。此文件夹中还有 3 个 png 图像,在 myPackage.Rmd 文件中调用如下:

```{r, echo=FALSE, out.width = '98%', out.height='98%'}
knitr::include_graphics("an_image.png")
```#

否则,小插图仅包含文本。

该包将运行,我可以使用其中任何一个在本地安装它,devtools::build()或者 devtools::install(build_vignettes = TRUE)它们可以工作,但是当我运行browseVignettes("myPackage")并单击 HTML、源代码或 R 代码时,我收到以下错误:

未找到 在此服务器上未找到请求的 URL /library/myPackage/doc/myPackage.html。

此外,在包的说明文件中,我包含以下内容:

Suggests: 
    knitr,
    rmarkdown
VignetteBuilder: knitr

- - - - - - 编辑 - - - - - - -

通过反复尝试使devtools::build_vignettes工作正常,我注意到有时我会收到以下错误,而不是我提到的第一个错误:

> devtools::build_vignettes()
Building cosni vignettes
--- re-building ‘myPackage.Rmd’ using rmarkdown
--- finished re-building ‘myPackage.Rmd’

Error in if (dir_exists(path %||% "") && is_in_proj(path)) { : 
  missing value where TRUE/FALSE needed

标签: rknitrdevtools

解决方案


我解决了更新包 devtools 和 usethis 的第二个错误。


推荐阅读