R devtools:使用本地依赖项

问题描述 投票:0回答:1

我想使用 R devtools 添加本地包依赖项。 建议的方法 将包添加到包描述文件是

use_package()
use_dev_package()
中的两个函数之一,来自usethis 包。后者增加了对开发中包的依赖。函数帮助显示如下原型:

use_dev_package(package, type = "Imports", remote = NULL)

remote
在哪里

指定遥控器的字符串,例如‘“gitlab::jimhester/covr”’,使用远程包支持的任何语法。

remotes vignette 显示以下内容

# Local
Remotes: local::/pkgs/testthat

所以命令应该是这样的:

use_dev_package(foopack, type = "Imports", remote = "local::<foopack>")

但是,

foopack
的路径应该是什么。绝对目录还是相对于项目目录?根包目录或带有代码的 R 目录,或者可能是
foopack.tar.gz
构建?
我的所有尝试都失败了。

不用说,除了在 DESCRIPTION 文件中正确列出本地依赖项之外,我还需要它被 devtools 构建和检查功能看到。

编辑

关于

use_dev_package()
,我找到了一个解决方案: 如果我使用
devtools::check()
,那么依赖项出现在搜索路径中,并且
use_dev_package()
不再抱怨(见下面的答案)。

但是,我仍然不清楚我应该使用什么参数来为主包进行 development

check()
,特别是当包有一个小插曲时。

理想情况下,我应该能够通过

cran = FALSE
通过本地依赖项的检查,但这仍然给出 “需要包裹但不可用”。

r dependencies devtools r-package r-usethis
1个回答
0
投票

使用 devtools 2.4.5,只要像下面这样简单地添加两次本地包(根据需要调整本地路径),任何东西都可以工作:

Imports: 
    foopack,
Remotes: 
    local::../foopack

devtools::check()
没有给出错误/警告。 当然,如果通过以下方式检查 CRAN 传入可行性:

devtools::check(incoming = TRUE, remote = TRUE)

一个得到

Unknown, possibly misspelled, fields in DESCRIPTION:
  ‘Remotes’

Strong dependencies not in mainstream repositories:
  foopack

因为

Remotes
不是官方描述字段,依赖项应该在 CRAN 上公开提交,

© www.soinside.com 2019 - 2024. All rights reserved.