4

这是上一篇文章(在 R 包中包含 Shiny 应用程序:传输输入参数)的延续,该文章成功解决了我的问题,但又导致了另一个问题。

基本上,我正在运行一个 Shiny 应用程序作为 R 包的一部分。为此,我有一个环境变量 PKGENVIR。从上一篇文章中可以看出,我使用以下方法完成了此操作:

### runExample.R

PKGENVIR <- new.env(parent=emptyenv()) # package level envir

#' @export
runExample <- function(data) {
  appDir <- system.file("shiny-examples", "myapp", package = "mypackage")
  if (appDir == "") {
    stop("Could not find example directory. Try re-installing `mypackage`.", call. = FALSE)
  }
  PKGENVIR$DATA <- data # put the data into envir
  shiny::runApp(appDir, display.mode = "normal")
} 

在 server.R 中:

### inside shiny app
data <- PACKAGE_NAME:::PKGENVIR$DATA ## read the data from envir

但是,我也在尝试将其转变为 pkgdown 站点。结果,我运行:

pkgdown::build_site()

但是,这似乎创建了一个无限循环,因为该过程在步骤冻结:

Reading 'man/PKGENVIR.Rd' 

关于如何解决这个问题的任何想法都会非常有帮助。在此之前我一直在运行 pkgdown::build_site() 并且没有遇到问题。因此,我几乎可以肯定这是由于这个新的环境变量。

4

0 回答 0