我构建了一个 R 包,其某些函数使用 V8
包。但是V8
在某些平台上不支持,所以我想让这些功能仅适用于支持V8
的平台。遇到这种情况该如何处理呢?我可以将V8
放在DESCRIPTION
的Suggests
字段而不是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/