当我构建、加载和运行我自己的包时,如果我事先加载带有“库(shinyBS)”的shinyBS,它只会使用shinyBS功能,否则工具提示不起作用..虽然闪亮的应用程序有效(没有shinyBS功能)有网页可以通过浏览器控制台看到的错误..(关于一些丢失的文件..shinyBS.css 和 shinyBS.js)
所以问题是:我如何生成、部署和运行我自己的闪亮包而不强制用户预先加载闪亮BS(做'library(shinyBS)')?!
谢谢!
向 R 包添加依赖项的常用方法是Imports
在文件的字段中添加包DESCRIPTION
。这是来自Hadley Wickam 介绍的改编版本。
Package: mypackage
Title: What The Package Does (one line, title case required)
Version: 0.1
Authors@R: person("First", "Last", email = "first.last@example.com",
role = c("aut", "cre"))
Description: What the package does (one paragraph)
Depends: R (>= 3.1.0), shiny
Imports: shinyBS
License: What license is it under?
LazyData: true
然后,您需要在文件中指定包shinyBS
中实际需要的包中的哪些函数。或者,您也可以使用importsFrom
NAMESPACE
shinyBS
import(shinyBS)
但是,在 的情况下,由于为该包定义挂钩的方式shinyBS
,您实际上需要将依赖项放在Depends
字段中。onLoad/onAttach
有关更多详细信息,请参见此处。因此,您的DESCRIPTION
文件应类似于以下示例
Package: mypackage
Title: What The Package Does (one line, title case required)
Version: 0.1
Authors@R: person("First", "Last", email = "first.last@example.com",
role = c("aut", "cre"))
Description: What the package does (one paragraph)
Depends: R (>= 3.1.0), shiny, shinyBS
License: What license is it under?
LazyData: true
这是非常不寻常的,在我看来,这个问题应该由shinyBS
开发人员解决。但是,与此同时,使用该Depends
字段确保shinyBS
已附加是您描述的问题的可行解决方法。
你应该使用NAMESPACE
来声明你需要shinyBS
在你的包中加载。
例如,在您的NAMESPACE
文件中,您应该这样做:
import(shinyBS)
此外,正如@r2evans 所指出的,您应该shinyBS
在文件的Imports
一部分中添加DESCRIPTION
:
Imports: shinyBS
有关更多信息,请查看 Hadley Wickam 的 R 包网站:http: //r-pkgs.had.co.nz/namespace.html#imports 。