首页 > 解决方案 > 只为 R 包构建一个小插图 1 次

问题描述

我正在不同的 repo 路径中的 2 台不同的计算机上开发一个包。当我调用devtools::document()andpkgdown::build_site()时,我注意到整个小插图都被重新渲染了。问题在于,根据机器的不同,重新渲染会导致错误,因为函数调用的 2 台机器中的路径不同。有没有办法让小插图“静态”,这样它们就不会重新渲染,这样当我拉上另一台机器并开始处理包时,它将继承小插图而不是重建它?

标签: rpackagedevtoolsroxygenvignette

解决方案


是的——我用几个包来做,可能有很多原因(你描述的地方差异,想要节省时间,确保相同的结果,......)

本质上它包括两个步骤,我在这里描述一个 pdf 小插图,因为这就是我关心的情况。

首先,您在本地“照常”渲染您的小插图并将其存储在包中。的子目录vignettes/会做得很好。该文件现在是静态的,不会更改,因为 R 只能在顶级目录级别工作vignettes/

其次,您添加了几行的老式 Sweave 小插图,其中包括您的预制 pdf 小插图作为输入Mark在这篇博文中首先描述了这一点。还要确保您的DESCRIPTION文件设置为标准 Sweave 小插图。使用此设置,您不再需要声明knitrRMarkdown因为您的标准R CMD ...流程不再涉及它们。

您可以查看我的任何时间包及其vignettes/目录作为工作示例。


推荐阅读