On 01/06/2020 9:15 a.m., Bryan Hanson wrote:
Duncan, I don’t think it is a particularly clever or efficient example, but my package exCon does some of what you describe.  Additional disclaimer: I’m not very good at serious Javascript, and find the scoping rules challenging.  Even so, exCon works pretty well on large data sets.  But you may be more interested in the infrastructure aspects.

Thanks!  I hadn't thought of using js::uglify_optimize().

I'd like to do the minification during package install rather than when used, and this appears to work in the R source code (at top level):

text <- readLines(system.file("htmlwidgets/lib/rglClass/rglClass.src.js", package = "rgl"))

if (requireNamespace("js", quietly = TRUE))
  text <- js::uglify_optimize(text)

writeLines(text, file.path(system.file("htmlwidgets/lib/rglClass", package = "rgl"), "rglClass.js"))

rm(text)

I'm not completely sure this is supported/allowed, though I don't see a CRAN rule to disallow it.

Now I can work on splitting up the big file, and doing a somewhat more complicated install of rglClass.js.

Duncan Murdoch


https://cran.r-project.org/package=exCon

The gathering of separate .js files, minifying and deployment are handled in the main function exCon.R.  Javascript  and html files in inst/extdata.

Bryan
****************
Prof. Bryan Hanson (emeritus)
Dept of Chemistry & Biochemistry
DePauw University
Greencastle IN 46135 USA
Web: academic.depauw.edu/~hanson/index.html <http://academic.depauw.edu/~hanson/index.html>
Repo: github.com/bryanhanson <http://github.com/bryanhanson>
Nerdy Blog: ChemoSpec.org <http://ChemoSpec.org>
The Twit: @ProfBryanHanson
I’m usually @ -4 GMT/UTC

On Jun 1, 2020, at 7:44 AM, Duncan Murdoch <murdoch.dun...@gmail.com <mailto:murdoch.dun...@gmail.com>> wrote:

The rgl package includes a large amount of Javascript source to handle the display of output in browsers using rglwidget().  Currently this is mostly in one big file (inst/htmlwidgets/lib/rglClass/rglClass.src.js), but I'd like to make some improvements:

- splitting it into separate files with related functions
- automatically "compiling" it into a single file stripped of white space and comments, for faster loading.

Unfortunately, I have no other experience writing a Javascript library, so I really don't know what I'm doing.  Can anyone point me to other R packages containing htmlwidgets that do this "properly", or point to instructions for the standard workflow for Javascript library development outside of R that I could adapt?

Duncan Murdoch

______________________________________________
R-package-devel@r-project.org <mailto:R-package-devel@r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel












______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to