Get or set Shiny options — getShinyOption
R/shiny-options.R
Description
There are two mechanisms for working with options for Shiny. One is the
options()
function, which is part of base R, and the other is the
shinyOptions()
function, which is in the Shiny package. The reason for
these two mechanisms is has to do with legacy code and scoping.
The options()
function sets options globally, for the duration of the R
process. The getOption()
function retrieves the value of an option. All
shiny related options of this type are prefixed with "shiny."
.
The shinyOptions()
function sets the value of a shiny option, but unlike
options()
, it is not always global in scope; the options may be scoped
globally, to an application, or to a user session in an application,
depending on the context. The getShinyOption()
function retrieves a value
of a shiny option. Currently, the options set via shinyOptions
are for
internal use only.
Arguments
- name
Name of an option to get.
- default
Value to be returned if the option is not currently set.
- ...
Options to set, with the form
name = value
.
Options with options()
- shiny.autoreload (defaults to
FALSE
) If
TRUE
when a Shiny app is launched, the app directory will be continually monitored for changes to files that have the extensions: r, htm, html, js, css, png, jpg, jpeg, gif. If any changes are detected, all connected Shiny sessions are reloaded. This allows for fast feedback loops when tweaking Shiny UI.Since monitoring for changes is expensive (we simply poll for last modified times), this feature is intended only for development.
You can customize the file patterns Shiny will monitor by setting the shiny.autoreload.pattern option. For example, to monitor only ui.R:
options(shiny.autoreload.pattern = glob2rx("ui.R"))
The default polling interval is 500 milliseconds. You can change this by setting e.g.
options(shiny.autoreload.interval = 2000)
(every two seconds).- shiny.deprecation.messages (defaults to
TRUE
) This controls whether messages for deprecated functions in Shiny will be printed. See
shinyDeprecated()
for more information.- shiny.error (defaults to
NULL
) This can be a function which is called when an error occurs. For example,
options(shiny.error=recover)
will result a the debugger prompt when an error occurs.- shiny.fullstacktrace (defaults to
FALSE
) Controls whether "pretty" (
FALSE
) or full stack traces (TRUE
) are dumped to the console when errors occur during Shiny app execution. Pretty stack traces attempt to only show user-supplied code, but this pruning can't always be done 100% correctly.- shiny.host (defaults to
"127.0.0.1"
) The IP address that Shiny should listen on. See
runApp()
for more information.- shiny.jquery.version (defaults to
3
) The major version of jQuery to use. Currently only values of
3
or1
are supported. If1
, then jQuery 1.12.4 is used. If3
, then jQuery 3.6.0 is used.- shiny.json.digits (defaults to
I(16)
) Max number of digits to use when converting numbers to JSON format to send to the client web browser. Use
I()
to specify significant digits. UseNA
for max precision.- shiny.launch.browser (defaults to
interactive()
) A boolean which controls the default behavior when an app is run. See
runApp()
for more information.- shiny.mathjax.url (defaults to
"https://mathjax.rstudio.com/latest/MathJax.js"
) The URL that should be used to load MathJax, via
withMathJax()
.- shiny.mathjax.config (defaults to
"config=TeX-AMS-MML_HTMLorMML"
) The querystring used to load MathJax, via
withMathJax()
.- shiny.maxRequestSize (defaults to 5MB)
This is a number which specifies the maximum web request size, which serves as a size limit for file uploads.
- shiny.minified (defaults to
TRUE
) By default Whether or not to include Shiny's JavaScript as a minified (
shiny.min.js
) or un-minified (shiny.js
) file. The un-minified version is larger, but can be helpful for development and debugging.- shiny.port (defaults to a random open port)
A port number that Shiny will listen on. See
runApp()
for more information.- shiny.reactlog (defaults to
FALSE
) If
TRUE
, enable logging of reactive events, which can be viewed later with thereactlogShow()
function. This incurs a substantial performance penalty and should not be used in production.- shiny.sanitize.errors (defaults to
FALSE
) If
TRUE
, then normal errors (i.e. errors not wrapped insafeError
) won't show up in the app; a simple generic error message is printed instead (the error and stack trace printed to the console remain unchanged). If you want to sanitize errors in general, but you DO want a particular errore
to get displayed to the user, then set this option toTRUE
and usestop(safeError(e))
for errors you want the user to see.- shiny.stacktraceoffset (defaults to
TRUE
) If
TRUE
, then Shiny's printed stack traces will display srcrefs one line above their usual location. This is an arguably more intuitive arrangement for casual R users, as the name of a function appears next to the srcref where it is defined, rather than where it is currently being called from.- shiny.suppressMissingContextError (defaults to
FALSE
) Normally, invoking a reactive outside of a reactive context (or
isolate()
) results in an error. If this isTRUE
, don't error in these cases. This should only be used for debugging or demonstrations of reactivity at the console.- shiny.testmode (defaults to
FALSE
) If
TRUE
, then various features for testing Shiny applications are enabled.- shiny.snapshotsortc (defaults to
FALSE
) If
TRUE
, test snapshot keys for shinytest will be sorted consistently using the C locale. Snapshots retrieved by shinytest2 will always sort using the C locale.- shiny.trace (defaults to
FALSE
) Print messages sent between the R server and the web browser client to the R console. This is useful for debugging. Possible values are
"send"
(only print messages sent to the client),"recv"
(only print messages received by the server),TRUE
(print all messages), orFALSE
(default; don't print any of these messages).- shiny.autoload.r (defaults to
TRUE
) If
TRUE
, then the R/ of a shiny app will automatically be sourced.- shiny.useragg (defaults to
TRUE
) Set to
FALSE
to prevent PNG rendering via the ragg package. SeeplotPNG()
for more information.- shiny.usecairo (defaults to
TRUE
) Set to
FALSE
to prevent PNG rendering via the Cairo package. SeeplotPNG()
for more information.- shiny.devmode (defaults to
NULL
) Option to enable Shiny Developer Mode. When set, different default
getOption(key)
values will be returned. Seedevmode()
for more details.
Scoping for shinyOptions()
There are three levels of scoping for shinyOptions()
: global,
application, and session.
The global option set is available by default. Any calls to
shinyOptions()
and getShinyOption()
outside of an app will access the
global option set.
When a Shiny application is run with runApp()
, the global option set is
duplicated and the new option set is available at the application level. If
options are set from global.R
, app.R
, ui.R
, or server.R
(but
outside of the server function), then the application-level options will be
modified.
Each time a user session is started, the application-level option set is duplicated, for that session. If the options are set from inside the server function, then they will be scoped to the session.
Options with shinyOptions()
There are a number of global options that affect Shiny's behavior. These
can be set globally with options()
or locally (for a single app) with
shinyOptions()
.
- cache
A caching object that will be used by
renderCachedPlot()
. If not specified, acachem::cache_mem()
will be used.