Rbuildignore和排除目录

Ram*_*ath 34 r package

我有兴趣排除两个目录inst\docs,inst\examples同时构建和安装包.我知道一个简单的方法就是运动docsexamples到根目录下,他们将不会得到安装.但是,inst由于其他原因,我想保留它们.

我尝试添加以下行 .Rbuildignore

inst/docs
inst/examples
Run Code Online (Sandbox Code Playgroud)

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

难道我做错了什么?

Sté*_*ent 18

你可以做

devtools::use_build_ignore(c("yourfolder1", "yourfolder2", "yourfile"))
Run Code Online (Sandbox Code Playgroud)

  • 两年后更新:`use_build_ignore()` 现在是 `usethis` 的一部分,并且`devtools` fxn 已被弃用,所以现在改为 `usethis::use_build_ignore(c("yourfolder1", "yourfolder2", "yourfile" ))` (12认同)

Das*_*son 17

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

  • @Ramnath对上述提交的问题有何回复?链接不再有效,仍然遇到RStudio忽略`.Rbuildignore` (6认同)
  • 使用RStudio发布[问题](http://support.rstudio.org/help/discussions/problems/3771-build-and-reload-package-does-not-respect-rbuildignore?unresolve=true) (4认同)
  • 相同[问题](https://support.rstudio.com/hc/en-us/community/posts/200654836-Build-and-Reload-Package-does-not-respect-Rbuildignore),但更新了链接. (4认同)
  • @DanielKrizian我认为你应该用devtools或rstudio来解决这个问题,如果还没有解决的话. (3认同)

ms6*_*609 5

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

^inst/docs
^inst/examples
Run Code Online (Sandbox Code Playgroud)

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