htmlwidgets :: scaffoldWidget问题与bowerPkg

问题描述

我尝试使用软件包在我的Shiny应用程序中实现JavaScript。这是我正在使用的代码

# create package using devtools
devtools::create()

# navigate to package dir
setwd()

# create widget scaffolding
htmlwidgets::scaffoldWidget("test",bowerPkg = "c3",edit = FALSE)

# install package so we can test it
devtools::install()

正如您在执行过程中所看到的,我必须使用命令htmlwidgets::scaffoldWidget(name = "test",edit = FALSE)。根据该软件包的source code,它还会更新包含相关性的.yaml-文件。通过上述命令创建的当前.yaml如下所示:

dependencies:
- name: d3
  src: htmlwidgets/lib/d3
  script: ./d3.min.js
- name: c3
  src: htmlwidgets/lib/c3
  script: ./c3.min.js
  style: ./c3.min.css

缺少version 属性。在上面链接的源代码中,它指出,命令htmlwidgets::scaffoldWidget()的另一个函数已触发,应注意以下事项:

tpl <- "# (uncomment to add a dependency)
# dependencies:
#  - name:
#    version:
#    src:
#    script:
#    stylesheet:
"
  if (!file.exists('inst/htmlwidgets')){
    dir.create('inst/htmlwidgets')
  }
  if (!is.null(bowerPkg)){
    installBowerPkg(bowerPkg)
    tpl <- getConfig(bowerPkg)
  }
  if (!file.exists(file_ <- sprintf('inst/htmlwidgets/%s.yaml',name))){
    cat(tpl,file = file_)
    message('Created boilerplate for widget dependencies at ',sprintf('inst/htmlwidgets/%s.yaml',name)
    )
  } else {
    message(file_," already exists")
  }
  if (edit) fileEdit(file_)
}

但是,version属性在我的.yaml文件中不可见,这进一步导致了错误在这里,我正在尝试测试我的包裹:

#### Testing ####
library(test)
C3Gauge("hello,World!")

这导致了问题,R然后说:

Error in (function (name,version,src,Meta = NULL,script = NULL,stylesheet = NULL,: 
Argument "version" is missing (without default)

基于此,我的问题是:如何使用version命令将.yaml属性添加htmlwidgets::scaffoldWidget()文件中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)