问题描述
我正在使用 renv 使我的项目可重现。
但是,我有两个需要的包在使用 renv::snapshot()
时没有被自动考虑(rnaturalearthdata
和 gifski
包是 rnaturalearth
和 { 的 2 个依赖项)我认为 {1}} 个软件包)。
因此,我不得不使用 knitr
问题是现在,当我使用 renv::record(<package>@<version>)
时,我有以下情况:
renv::status()
(这是正常的,因为我没有在我的项目中使用 The following package(s) are no longer used in this project:
_
gifski [0.8.6]
rnaturalearthdata [0.1.0]
Use `renv::snapshot()` to remove them from the lockfile.
直接调用这些包,但它们是从它们的依赖项中自动导入的)
有没有办法告诉 renv 它可以认为它们是必要的?因为下次我使用 library()
添加其他包时,我不想删除这两个包。
解决方法
这里的问题是这些很可能是 Suggests
依赖项,因此不会被 renv
自动快照——默认情况下,它只包含“硬”依赖项;即,属于 Imports
、Depends
或 LinkingTo
一部分的包。
这里的修复很简单,不过:创建一个名为 deps.R
的文件,内容如下:
library(gifski)
library(rnaturalearthdata)
帮助指示 renv
应将这些包视为硬依赖项。
另请参阅 FAQ 了解更多详情。