我刚刚发现被devtools调用使用了一个环境变量NOT_CRAN,我们应该能够使用相同的想法来检查事物是否正在作为 CRAN 运行。我相信将代码包装在以下if语句中意味着只有在您不使用该--as-cran语句时才会运行它。
if (identical(Sys.getenv("NOT_CRAN", unset = "true"), "true")) {
###CODE HERE###
}
Run Code Online (Sandbox Code Playgroud)
我认为即使这是由devtools它设定的,它仍然应该有效。
来源:测试——Hadley Wickham 的 R 包;testthat包源码;devtools包源码。