42

我对排除两个目录inst\docs以及inst\examples构建和安装软件包感兴趣。我知道一个简单的方法就是移动docsexamples根目录,它们不会被安装。inst但是,出于其他原因,我想保留它们。

我尝试将以下行添加到.Rbuildignore

inst/docs
inst/examples

我使用 RStudio v 0.97 并devtools从源代码构建和安装包。但是,当我这样做时,我仍然会看到inst\docsinst\examples安装。我尝试了不同的正则表达式,但似乎没有任何效果。

难道我做错了什么?

4

5 回答 5

26

你可以做

usethis::use_build_ignore(c("yourfolder1", "yourfolder2", "yourfile"))
于 2017-03-20T15:02:32.840 回答
18

这似乎是 RStudio 的一个问题。从 devtools 包中使用install似乎会导致文件夹被忽略。直接从命令行构建和安装似乎也会导致文件夹被忽略。然而,RStudio 中的“构建和重新加载”按钮似乎没有考虑到这些文件夹的 .Rbuildignore。

于 2012-11-01T20:35:53.040 回答
3

一个旧帖子,但在构建二进制包时它似乎仍然是一个问题。不过,以下 hack 似乎有效(即构建源包,然后从该源包构建二进制文件)。

f <- devtools::build("mypackage")
system(paste0("R CMD INSTALL --build ", f))
于 2016-06-29T22:24:49.557 回答
3

只是为了更新,从最新版本开始,devtools::use_build_ignore已移至:

usethis::use_build_ignore(c("yourfolder1", "yourfolder2", "yourfile"))
于 2020-11-26T01:47:32.117 回答
0

我发现将.Rbuildignore文件的每一行视为正则表达式时,我获得了最一致的行为。在您的情况下,我将在项目的根目录中手动创建一个文本文件,.Rbuildignore并以内容命名

^inst/docs
^inst/examples

该表达式匹配以 ( ) 字符串^inst/docs开头的任何文件或文件夹。 为每个表达式添加一个尾随,我发现这会导致这些文件夹中的文件不会被模式捕获(因此不会被忽略)。^inst/docsusethis::use_build_ignore()$

于 2022-01-13T10:08:33.013 回答