0

我想让内部共享/本地启动一个使用 {golem} 框架开发的闪亮应用更加健壮。

因此,我使用了该renv包并将闪亮的应用程序作为本地包安装到项目文件夹中。

我进行如下操作(感谢@Kat 的建议):

  1. 使用初始化 renvrenv::init(bare = TRUE)

  2. renv::install("my_local_package")

  3. renv::snapshot(type = "all")

  4. renv::isolate()

  5. 编写一个包含以下内容的启动文件:

library(golempackage)
renv::restore()
golempackage::run_app(options = list(launch.browser = TRUE))

  1. 共享文件夹。

但是,在另一台计算机(或 docker 测试环境)上启动闪亮的应用程序时,我收到以下由 package 引起的错误bslib。当我删除缓存时也会发生同样的情况:

An error has occurred!

File attachments must exist: 'C:/Users/XYZ/AppData/Local/R/cache/R/renv/cache/v5/.../bslib/lib/bs3/assets/fonts'

注意:即使我将缓存设置为项目本地并在项目文件夹中共享它,也会发生此错误。

但是,现在错误消息不引用全局缓存,而是引用项目本地缓存。不幸的是,它仍然是一个绝对路径,会给其他用户带来错误。

这一切都非常奇怪,我一点也不知道为什么会发生这种情况。

我想避免删除 bslib。

4

1 回答 1

0

据我所知,错误来自sass包,例如

https://github.com/rstudio/sass/blob/f7a954027447dd0b9826ec01c7084c89a6e64fcc/R/layers.R#L442-L443

虽然我不确切知道发生了什么,但您可能可以使用 R 调试器来检查失败的原因。(在这两种情况下都存在引用的文件夹吗?您是否希望renv在第二种情况下使用缓存?)

于 2022-01-04T19:16:05.040 回答