正确使用devtools和/或RStudio相对于.Rbuildignore

Rap*_*ter 25 ignore r build devtools rstudio

通过以下方式构建R包时,我想排除以下资源.Rbuildignore:

^.*\.Rproj$
^\.Rproj\.user$
inst/examples
inst/prof
man-roxygen
tests
Run Code Online (Sandbox Code Playgroud)

但我很困惑,因为它似乎有时似乎有效,有时它却没有.

我猜测它必须要做我是否正在使用devtools::build(),devtools::install()或者在RStudio中击中SHFT + CTRL + B(或构建>>构建和重新加载)时发生的任何事情.

我能找到的唯一相关资源是这篇文章导致了这个问题,但我仍然没有完全理解.

这是我试过的:

  1. 通过RStudio快捷方式加载所有后跟Build和Reload:

    这是我在打电话时看到的list.files(file.path(R.home("library"), "mypackage")):

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
    [9] "R"      
    
    Run Code Online (Sandbox Code Playgroud)
  2. 加载所有后跟Build和Reload,然后按devtools::install():

    这是我在打电话时看到的list.files(file.path(R.home("library"), "mypackage")):

     [1] "DESCRIPTION" "examples"    "help"        "html"       
     [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
     [9] "R"           "tests"      
    
    Run Code Online (Sandbox Code Playgroud)
  3. devtools::load_all()其次是devtools::build()其次devtools::install():

    这是我在打电话时看到的list.files(file.path(R.home("library"), "mypackage")):

     [1] "DESCRIPTION" "examples"    "help"        "html"       
     [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
     [9] "R"           "tests"    
    
    Run Code Online (Sandbox Code Playgroud)

    解压缩.tar.gz文件并检查目录内容:

     [1] "DESCRIPTION" "man"          "NAMESPACE"  "R"
    
    Run Code Online (Sandbox Code Playgroud)
  4. devtools::load_all()其次是devtools::build(binary=TRUE)其次devtools::install():

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
    [9] "R"           "tests"      
    
    Run Code Online (Sandbox Code Playgroud)

    解压缩.zip文件并检查目录内容:

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "MD5"         "Meta"        "NAMESPACE"  
    [9] "prof"        "R"    
    
    Run Code Online (Sandbox Code Playgroud)

看着这个也让我有理由相信我还没有完全理解它们之间的差异devtools::build(),devtools::install()并且install.packages()在包构建之后;-)

会话信息:

R version 3.1.1 (2014-07-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=German_Germany.1252 
[2] LC_CTYPE=German_Germany.1252   
[3] LC_MONETARY=German_Germany.1252
[4] LC_NUMERIC=C                   
[5] LC_TIME=German_Germany.1252    

attached base packages:
[1] compiler  stats     graphics  grDevices utils    
[6] datasets  methods   base     

other attached packages:
[1] mypackage_0.1.0.1

loaded via a namespace (and not attached):
 [1] devtools_1.5    digest_0.6.4    evaluate_0.5.5 
 [4] httr_0.4        memoise_0.2.1   packrat_0.4.0.5
 [7] parallel_3.1.1  RCurl_1.95-4.3  stringr_0.6.2  
[10] tools_3.1.1     whisker_0.3-2  
Run Code Online (Sandbox Code Playgroud)

我正在使用RStudio 0.98.978

Ric*_*ton 6

那对我有用的是devtools::build用来制作一个源包install.packages.

devtools::build() %>% 
  install.packages(repos = NULL, type = "source")
Run Code Online (Sandbox Code Playgroud)

使用devtools::build(binary = TRUE)不起作用,因为它调用R CMD INSTALL而不是R CMD build忽略.Rbuildignore文件.同样,RStudio的"Build&Reload"按钮使用R CMD INSTALL.