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.
getShinyOption(name, default = NULL)
shinyOptions(...)
options()
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).
TRUE
)This controls whether messages for
deprecated functions in Shiny will be printed. See
shinyDeprecated()
for more information.
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.
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.
"127.0.0.1"
)The IP address that Shiny should listen on. See
runApp()
for more information.
3
)The major version of jQuery to use.
Currently only values of 3
or 1
are supported. If 1
, then jQuery 1.12.4 is used. If 3
,
then jQuery 3.6.0 is used.
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.
Use NA
for max precision.
interactive()
)A boolean which controls the default behavior
when an app is run. See runApp()
for more information.
"https://mathjax.rstudio.com/latest/MathJax.js"
)The URL that should be used to load MathJax, via withMathJax()
.
"config=TeX-AMS-MML_HTMLorMML"
)The querystring
used to load MathJax, via withMathJax()
.
This is a number which specifies the maximum web request size, which serves as a size limit for file uploads.
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.
A port number that Shiny will listen on. See
runApp()
for more information.
FALSE
)If TRUE
, enable logging of reactive events,
which can be viewed later with the reactlogShow()
function.
This incurs a substantial performance penalty and should not be used in
production.
FALSE
)If TRUE
, then normal errors (i.e.
errors not wrapped in safeError
) 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 error e
to get displayed to the user, then set this option
to TRUE
and use stop(safeError(e))
for errors you want the
user to see.
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.
FALSE
)Normally, invoking a reactive
outside of a reactive context (or isolate()
) results in
an error. If this is TRUE
, don't error in these cases. This
should only be used for debugging or demonstrations of reactivity at the
console.
FALSE
)If TRUE
, then various features for testing Shiny
applications are enabled.
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.
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), or FALSE
(default; don't print any of these
messages).
TRUE
)If TRUE
, then the R/
of a shiny app will automatically be sourced.
TRUE
)Set to FALSE
to prevent PNG rendering via the
ragg package. See plotPNG()
for more information.
TRUE
)Set to FALSE
to prevent PNG rendering via the
Cairo package. See plotPNG()
for more information.
NULL
)Option to enable Shiny Developer Mode. When set,
different default getOption(key)
values will be returned. See devmode()
for more details.
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.
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()
.
A caching object that will be used by
renderCachedPlot()
. If not specified, a cachem::cache_mem()
will be
used.