r - 只为 R 包构建一个小插图 1 次
问题描述
我正在不同的 repo 路径中的 2 台不同的计算机上开发一个包。当我调用devtools::document()
andpkgdown::build_site()
时,我注意到整个小插图都被重新渲染了。问题在于,根据机器的不同,重新渲染会导致错误,因为函数调用的 2 台机器中的路径不同。有没有办法让小插图“静态”,这样它们就不会重新渲染,这样当我拉上另一台机器并开始处理包时,它将继承小插图而不是重建它?
解决方案
是的——我用几个包来做,可能有很多原因(你描述的地方差异,想要节省时间,确保相同的结果,......)
本质上它包括两个步骤,我在这里描述一个 pdf 小插图,因为这就是我关心的情况。
首先,您在本地“照常”渲染您的小插图并将其存储在包中。的子目录vignettes/
会做得很好。该文件现在是静态的,不会更改,因为 R 只能在顶级目录级别工作vignettes/
。
其次,您添加了几行的老式 Sweave 小插图,其中包括您的预制 pdf 小插图作为输入。Mark在这篇博文中首先描述了这一点。还要确保您的DESCRIPTION
文件设置为标准 Sweave 小插图。使用此设置,您不再需要声明knitr
或RMarkdown
因为您的标准R CMD ...
流程不再涉及它们。
您可以查看我的任何时间包及其vignettes/
目录作为工作示例。
推荐阅读
- git - 如何挑选 HISTORY 提交并强制应用于当前分支
- laravel - http-tests 如何在打开表单的情况下对 ajax 事件进行测试?
- keras - 有人可以帮助解释 keras.backend.learning_phase_scope(1) 的使用吗?
- python - 如何在 Visual Studio 调试命令中使用环境变量
- heroku - 打开应用程序时出现应用程序错误
- algorithm - 在不排序的情况下查找数组中元素的排名
- shell - 使用shell的sql查询,尝试以下,它不工作
- sql - 从同一个表sql中获取不同列的最新和最早值
- sonarqube - 如果我在同一个项目中有多个目标文件夹的子目录,如何设置声纳属性
- php - 我如何使用 CURL ( Laravel ) 传递 SSL 证书