renv 一直告诉包在使用时未被使用

renv keeps telling that packages are not used while they are

我正在使用 renv 使我的项目可重现。

但是,我有两个需要的包在使用 renv::snapshot() 时没有被自动考虑(rnaturalearthdatagifski 包是 rnaturalearth 的 2 个依赖项我认为 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.

(这是正常的,因为我没有使用 library() 在我的项目中直接调用这些包,而是自动从它们的依赖项中导入它们)

有没有办法告诉 renv 它可以根据需要考虑它们?因为下次我使用 renv::snapshot() 添加其他包时,我不想删除这 2 个包。

这里的问题是这些可能是 Suggests 依赖项,因此不会被 renv 自动快照——默认情况下,它只包含“硬”依赖项;也就是说,属于 ImportsDependsLinkingTo.

的软件包

这里的修复很简单:创建一个名为 deps.R 的文件,内容为:

library(gifski)
library(rnaturalearthdata)

帮助指示 renv 这些包应被视为硬依赖项。

另请参阅 FAQ 了解更多详情。