2015-09-28 72 views
2

我正在RStudio中使用devtools在本地開發包。修改一個函數後,當我嘗試從一個項目中調用它時,R會繼續使用舊版本的函數。R包開發 - 項目中使用的舊版本功能

我的工作流程是:

  • 修改功能,並保存
  • 呼叫Build & Reload
  • 測試與封裝發展 項目的一些示例代碼的函數(我經常遇到另一個Build & Reload後)
  • 轉到該項目我想使用
  • 的功能
  • 請致電library(my_library)

但是我剛剛做的修改不會有效。這個工作流程有什麼問題?

回答

1

?devtools::build

大廈將一包源目錄到一個單一的捆綁文件。如果binary = FALSE,這會創建一個可以安裝在任何平臺上的tar.gz包,前提是它們具有完整的開發環境(儘管沒有源代碼的包通常可以直接安裝)。如果binary = TRUE,軟件包將具有特定於平臺的擴展名(例如Windows的.zip),並且只能安裝在當前平臺上,但不需要開發環境。

我的閱讀是,你仍然需要devtools::install()你的包。 Building只是創建二進制文件,它不會安裝新版本。

+1

您實際上不需要構建 - 安裝就足夠了。 「Build」生成可部署的存檔。 –

+0

確實。除非你打算保存一個版本並將其上傳到GitHub或提交給CRAN –

+0

使用'install(「package_directory」)'工作,否則你真的不應該構建它。關於構建的評論也有幫助,因爲我開始爲.tar.gz文件進行安裝,但效果不佳。 –

相關問題