27

我正在编写一个名为的 R 包slidify,它可以轻松地从 R Markdown 文件生成可重现的 HTML5 幻灯片。该包利用了现有的几个HTML5幻灯片生成框架中的文件,例如css,等。目前,我已将这些外部资源的下载版本组织在文件夹中,以便用户在安装时自动使用。虽然这种方法很简单,但也有一些缺点:jsdzslidesdeck.jsinst/librariesslidify

  1. 这些框架在github. 在当前设置下,每次更新这些框架中的任何一个时,我都必须推送新版本的包。

  2. css如果我对这些框架附带的默认设置进行任何调整js,那么我需要仔细合并更新,以免丢失slidify特定的自定义设置。

我对如何管理这个有几个想法。

  1. 不要将这些库与slidify. 相反,提供一个function允许用户添加他们想要的框架的工具。

  2. 将这些框架添加到inst\libraries文件夹上slidify,但作为submodules. 现在,我不知道submodules如果有人要使用devtools::install_github.

所以我的问题是,在编写 R 包时,如何管理不断更新的外部非 R 依赖项?

4

2 回答 2

2

一种类似的情况是查看包xlsxXLConnect.

这两个包都依赖于 Java 库。定义(并依赖于)一个仅包含库xlsx的独立包。xlsxjars

通过这种方式,下游代码与库解耦。

于 2012-11-06T19:23:13.030 回答
1

我通过使用解决了类似的问题git-subtree。看看:在源代码控制下管理代码使用的第 3 方源代码和二进制文件

于 2012-07-15T19:31:34.830 回答