r - 具有可选依赖项的 CRAN 包

标签 r v8 cran

我构建了一个 R 包,其某些函数使用 V8 包。但是V8在某些平台上不支持,所以我想让这些功能仅适用于支持V8的平台。遇到这种情况该如何处理呢?我可以将V8放在DESCRIPTIONSuggests字段而不是Imports字段中,并测试它是否可用与 requireNamespace 一样,但是如何处理必须从 V8 导入的函数呢?我想将此包提交给 CRAN。

最佳答案

我通过复制reactR包使用的方式找到了解决方案。

  • V8 放入建议字段中。

  • 不要在 NAMESPACE 中导入 V8 或其函数;使用 V8::... 使用 V8 函数。

  • 在需要 V8 的函数中,使用 requireNamespace 检查 V8 是否存在,如果存在则抛出消息或错误它不是:

    if(!requireNamespace("V8")){
      message("This addin requires the 'V8' package.")
      return(invisible())
    }
    

我运行了R CMD CHECK,它没有提示。

关于r - 具有可选依赖项的 CRAN 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64117398/

相关文章:

r - ggplot geom_point随窗口大小变化大小

r - data.tables 的 Shiny react 失败

r - 在 R 中填写 PDF 表单?

javascript - 为什么 Javascript 函数 `arguments` 不是 node.js 中 Array 的实例?

javascript - V8Engine.Execute 返回 'undefined' ,而 Microsoft.JScript 的 eval 返回一个值

r - 按 ID 分组的间隔之间的填充值

javascript - NodeJS : calling global. gc() 没有将内存减少到最小?

未附加命名空间时的 R 包依赖性问题

r - 在 CRAN pkg 中使用 ssl_verifypeer = FALSE?