2012-11-01 146 views
25

我有興趣在構建和安裝軟件包時不包括兩個目錄inst\docsinst\examples。我知道一個簡單的方法就是將docsexamples移動到根目錄,它們不會被安裝。但是,由於其他原因,我想讓他們保留在inst之內。Rbuildignore和不包含目錄

我嘗試添加下列行來.Rbuildignore

inst/docs 
inst/examples 

我使用RStudio v 0.97和devtools構建和從源安裝軟件包。但是,當我這樣做時,我仍然看到inst\docsinst\examples已安裝。我嘗試了不同的正則表達式,但似乎沒有任何工作。

我做錯了什麼?

+1

我有同樣的問題。在devtools中使用'install'時,文件夾被忽略。從命令行構建和安裝時,文件夾將被忽略。但是當使用RStudio中的'Build&Reload'按鈕時,文件夾就會被安裝。看起來像一個RStudio問題 – Dason

+1

你是對的。我使用'devtools:install'並且它工作得很完美。如果別人有同樣的問題,我會在這裏留下這個問題。 – Ramnath

+1

@Dason如果你打算留下來,最好讓別人根據Dason的評論寫出真實的答案,這樣才能被接受。 – joran

回答

15

這似乎是RStudio的一個問題。從devtools包使用install似乎會導致文件夾被忽略。直接從命令行構建和安裝似乎也會導致文件夾被忽略。然而,在RStudio中'Build & Reload'按鈕似乎沒有考慮到這些文件夾的.Rbuildignore。

+1

你是否提出過rstudio的支持問題? – hadley

+1

還沒有。但我會。 – Ramnath

+4

發表[issue](http://support.rstudio.org/help/discussions/problems/3771-build-and-reload-package-does-not-respect-rbuildignore?unresolve=true)與RStudio – Ramnath

2

舊的帖子,但它仍然似乎是建立二進制包時的問題。下面的hack似乎可以工作(即構建源代碼包,然後從該源代碼包構建二進制文件)。

f <- devtools::build("mypackage") 
system(paste0("R CMD INSTALL --build ", f)) 
6

你可以做

devtools::use_build_ignore(c("yourfolder1", "yourfolder2", "yourfile"))