Files
shiny/reference/devmode.html
2025-12-03 21:27:07 +00:00

340 lines
28 KiB
HTML

<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Shiny Developer Mode — devmode • shiny</title><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Shiny Developer Mode — devmode"><meta property="og:description" content="
Developer Mode enables a number of options() to make a developer's life
easier, like enabling non-minified JS and printing messages about
deprecated functions and options.
Shiny Developer Mode can be enabled by calling devmode(TRUE) and disabled
by calling devmode(FALSE).
Please see the function descriptions for more details."><meta property="og:image" content="/logo.png"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
<div class="container template-reference-topic">
<header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">shiny</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">1.12.0.9000</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav"><li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">Changelog</a>
</li>
</ul><ul class="nav navbar-nav navbar-right"><li>
<a href="https://github.com/rstudio/shiny/" class="external-link">
<span class="fab fa-github fa-lg"></span>
</a>
</li>
</ul></div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header><div class="row">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Shiny Developer Mode</h1>
<small class="dont-index">Source: <a href="https://github.com/rstudio/shiny/blob/rc-v1.12.1/R/devmode.R" class="external-link"><code>R/devmode.R</code></a></small>
<div class="hidden name"><code>devmode.Rd</code></div>
</div>
<div class="ref-description">
<p><a href="https://lifecycle.r-lib.org/articles/stages.html#experimental" class="external-link"><img src="figures/lifecycle-experimental.svg" alt="[Experimental]"></a></p>
<p>Developer Mode enables a number of <code><a href="https://rdrr.io/r/base/options.html" class="external-link">options()</a></code> to make a developer's life
easier, like enabling non-minified JS and printing messages about
deprecated functions and options.</p>
<p>Shiny Developer Mode can be enabled by calling <code>devmode(TRUE)</code> and disabled
by calling <code>devmode(FALSE)</code>.</p>
<p>Please see the function descriptions for more details.</p>
</div>
<div id="ref-usage">
<div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">devmode</span><span class="op">(</span></span>
<span> devmode <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="st">"shiny.devmode"</span>, <span class="cn">TRUE</span><span class="op">)</span>,</span>
<span> verbose <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="st">"shiny.devmode.verbose"</span>, <span class="cn">TRUE</span><span class="op">)</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="fu">in_devmode</span><span class="op">(</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">with_devmode</span><span class="op">(</span><span class="va">devmode</span>, <span class="va">code</span>, verbose <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="st">"shiny.devmode.verbose"</span>, <span class="cn">TRUE</span><span class="op">)</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">devmode_inform</span><span class="op">(</span></span>
<span> <span class="va">message</span>,</span>
<span> .frequency <span class="op">=</span> <span class="st">"regularly"</span>,</span>
<span> .frequency_id <span class="op">=</span> <span class="va">message</span>,</span>
<span> .file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/showConnections.html" class="external-link">stderr</a></span><span class="op">(</span><span class="op">)</span>,</span>
<span> <span class="va">...</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="fu">register_devmode_option</span><span class="op">(</span><span class="va">name</span>, devmode_message <span class="op">=</span> <span class="cn">NULL</span>, devmode_default <span class="op">=</span> <span class="cn">NULL</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">get_devmode_option</span><span class="op">(</span></span>
<span> <span class="va">name</span>,</span>
<span> default <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span> devmode_default <span class="op">=</span> <span class="fu">missing_arg</span><span class="op">(</span><span class="op">)</span>,</span>
<span> devmode_message <span class="op">=</span> <span class="fu">missing_arg</span><span class="op">(</span><span class="op">)</span></span>
<span><span class="op">)</span></span></code></pre></div>
</div>
<div id="arguments">
<h2>Arguments</h2>
<dl><dt id="arg-devmode">devmode<a class="anchor" aria-label="anchor" href="#arg-devmode"></a></dt>
<dd><p>Logical value which should be set to <code>TRUE</code> to enable Shiny
Developer Mode</p></dd>
<dt id="arg-verbose">verbose<a class="anchor" aria-label="anchor" href="#arg-verbose"></a></dt>
<dd><p>Logical value which should be set to <code>TRUE</code> display Shiny
Developer messages</p></dd>
<dt id="arg-code">code<a class="anchor" aria-label="anchor" href="#arg-code"></a></dt>
<dd><p>Code to execute with the temporary Dev Mode options set</p></dd>
<dt id="arg-message">message<a class="anchor" aria-label="anchor" href="#arg-message"></a></dt>
<dd><p>Developer Mode message to be sent to <code><a href="https://rlang.r-lib.org/reference/abort.html" class="external-link">rlang::inform()</a></code></p></dd>
<dt id="arg--frequency">.frequency<a class="anchor" aria-label="anchor" href="#arg--frequency"></a></dt>
<dd><p>Frequency of the Developer Mode message used with
<code><a href="https://rlang.r-lib.org/reference/abort.html" class="external-link">rlang::inform()</a></code>. Defaults to once every 8 hours.</p></dd>
<dt id="arg--frequency-id">.frequency_id<a class="anchor" aria-label="anchor" href="#arg--frequency-id"></a></dt>
<dd><p><code><a href="https://rlang.r-lib.org/reference/abort.html" class="external-link">rlang::inform()</a></code> message identifier. Defaults to
<code>message</code>.</p></dd>
<dt id="arg--file">.file<a class="anchor" aria-label="anchor" href="#arg--file"></a></dt>
<dd><p>Output connection for <code><a href="https://rlang.r-lib.org/reference/abort.html" class="external-link">rlang::inform()</a></code>. Defaults to <code><a href="https://rdrr.io/r/base/showConnections.html" class="external-link">stderr()</a></code></p></dd>
<dt id="arg--">...<a class="anchor" aria-label="anchor" href="#arg--"></a></dt>
<dd><p>Parameters passed to <code><a href="https://rlang.r-lib.org/reference/abort.html" class="external-link">rlang::inform()</a></code></p></dd>
<dt id="arg-name">name<a class="anchor" aria-label="anchor" href="#arg-name"></a></dt>
<dd><p>Name of option to look for in <code><a href="https://rdrr.io/r/base/options.html" class="external-link">options()</a></code></p></dd>
<dt id="arg-devmode-message">devmode_message<a class="anchor" aria-label="anchor" href="#arg-devmode-message"></a></dt>
<dd><p>Message to display once every 8 hours when utilizing
the <code>devmode_default</code> value. If <code>devmode_message</code> is missing, the
registered <code>devmode_message</code> value be used.</p></dd>
<dt id="arg-devmode-default">devmode_default<a class="anchor" aria-label="anchor" href="#arg-devmode-default"></a></dt>
<dd><p>Default value to return if <code>in_devmode()</code> returns
<code>TRUE</code> and the specified option is not set in <code><a href="https://rdrr.io/r/base/options.html" class="external-link">options()</a></code>. For
<code>get_devmode_option()</code>, if <code>devmode_default</code> is missing, the
registered <code>devmode_default</code> value will be used.</p></dd>
<dt id="arg-default">default<a class="anchor" aria-label="anchor" href="#arg-default"></a></dt>
<dd><p>Default value to return if <code>in_devmode()</code> returns
<code>TRUE</code> and the specified option is not set in <code><a href="https://rdrr.io/r/base/options.html" class="external-link">options()</a></code>.</p></dd>
</dl></div>
<div id="functions">
<h2>Functions</h2>
<ul><li><p><code>devmode()</code>: Function to set two options to enable/disable Shiny
Developer Mode and Developer messages</p></li>
<li><p><code>in_devmode()</code>: Determines if Shiny is in Developer Mode. If the
<code>getOption("shiny.devmode")</code> is set to <code>TRUE</code> and not in testing inside
<code>testthat</code>, then Shiny Developer Mode is enabled.</p></li>
<li><p><code>with_devmode()</code>: Temporarily set Shiny Developer Mode and Developer
message verbosity</p></li>
<li><p><code>devmode_inform()</code>: If Shiny Developer Mode and verbosity are enabled,
displays a message once every 8 hrs (by default)</p></li>
<li><p><code>register_devmode_option()</code>: Registers a Shiny Developer Mode option with an updated
value and Developer message. This registration method allows package
authors to write one message in a single location.</p>
<p>For example, the following Shiny Developer Mode options are registered:</p>
<p></p><div class="sourceCode r"><pre><code><span><span class="co"># Reload the Shiny app when a sourced R file changes</span></span>
<span><span class="fu"><a href="../reference/devmode.html">register_devmode_option</a></span><span class="op">(</span></span>
<span> <span class="st">"shiny.autoreload"</span>,</span>
<span> <span class="st">"Turning on shiny autoreload. To disable, call `options(shiny.autoreload = FALSE)`"</span>,</span>
<span> devmode_default <span class="op">=</span> <span class="cn">TRUE</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Use the unminified Shiny JavaScript file, `shiny.js`</span></span>
<span><span class="fu"><a href="../reference/devmode.html">register_devmode_option</a></span><span class="op">(</span></span>
<span> <span class="st">"shiny.minified"</span>,</span>
<span> <span class="st">"Using full shiny javascript file. To use the minified version, call `options(shiny.minified = TRUE)`"</span>,</span>
<span> devmode_default <span class="op">=</span> <span class="cn">FALSE</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Display the full stack trace when errors occur during Shiny app execution</span></span>
<span><span class="fu"><a href="../reference/devmode.html">register_devmode_option</a></span><span class="op">(</span></span>
<span> <span class="st">"shiny.fullstacktrace"</span>,</span>
<span> <span class="st">"Turning on full stack trace. To disable, call `options(shiny.fullstacktrace = FALSE)`"</span>,</span>
<span> devmode_default <span class="op">=</span> <span class="cn">TRUE</span></span>
<span><span class="op">)</span></span></code></pre><p></p></div>
<p>Other known, non-Shiny Developer Mode options:</p><ul><li><p>Sass:</p></li>
</ul><p></p><div class="sourceCode r"><pre><code><span><span class="co"># Display the full stack trace when errors occur during Shiny app execution</span></span>
<span><span class="fu"><a href="../reference/devmode.html">register_devmode_option</a></span><span class="op">(</span></span>
<span> <span class="st">"sass.cache"</span>,</span>
<span> <span class="st">"Turning off sass cache. To use default caching, call `options(sass.cache = TRUE)`"</span>,</span>
<span> devmode_default <span class="op">=</span> <span class="cn">FALSE</span></span>
<span><span class="op">)</span></span></code></pre><p></p></div></li>
<li><p><code>get_devmode_option()</code>: Provides a consistent way to change the expected
<code><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption()</a></code> behavior when Developer Mode is enabled. This method is very
similar to <code><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption()</a></code> where the globally set option takes precedence.
See section "Avoiding direct dependency on shiny" for
<code>get_devmode_option()</code> implementation details.</p>
<p><strong>Package developers:</strong> Register your Dev Mode option using
<code>register_devmode_option()</code> to avoid supplying the same <code>devmode_default</code>
and <code>devmode_message</code> values throughout your package. (This requires a
<span class="pkg">shiny</span> dependency.)</p></li>
</ul></div>
<div id="avoiding-direct-dependency-on-shiny">
<h2>Avoiding direct dependency on shiny</h2>
<p>The methods explained in this help file act independently from the rest of
Shiny but are included to provide blue prints for your own packages. If
your package already has (or is willing to take) a dependency on Shiny, we
recommend using the exported Shiny methods for consistent behavior. Note
that if you use exported Shiny methods, it will cause the Shiny package to
load. This may be undesirable if your code will be used in (for example) R
Markdown documents that do not have a Shiny runtime (<code>runtime: shiny</code>).</p>
<p>If your package can <strong>not</strong> take a dependency on Shiny, we recommending
re-implementing these two functions:</p>
<ol><li><p><code>in_devmode()</code>:</p>
<p>This function should return <code>TRUE</code> if <code>getOption("shiny.devmode")</code> is set.
In addition, we strongly recommend that it also checks to make sure
<code>testthat</code> is not testing.</p>
<p></p><div class="sourceCode r"><pre><code><span><span class="va">in_devmode</span> <span class="op">&lt;-</span> <span class="kw">function</span><span class="op">(</span><span class="op">)</span> <span class="op">{</span></span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/Logic.html" class="external-link">isTRUE</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="st">"shiny.devmode"</span>, <span class="cn">FALSE</span><span class="op">)</span><span class="op">)</span> <span class="op">&amp;&amp;</span></span>
<span> <span class="op">!</span><span class="fu"><a href="https://rdrr.io/r/base/identical.html" class="external-link">identical</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/Sys.getenv.html" class="external-link">Sys.getenv</a></span><span class="op">(</span><span class="st">"TESTTHAT"</span><span class="op">)</span>, <span class="st">"true"</span><span class="op">)</span></span>
<span><span class="op">}</span></span></code></pre><p></p></div></li>
<li><p><code>get_devmode_option(name, default, devmode_default, devmode_message)</code>:</p>
<p>This function is similar to <code>getOption(name, default)</code>, but when the option
is not set, the default value changes depending on the Dev Mode.
<code>get_devmode_option()</code> should be implemented as follows:</p><ul><li><p>If not in Dev Mode:</p><ul><li><p>Return <code>getOption(name, default)</code>.</p></li>
</ul></li>
<li><p>If in Dev Mode:</p><ul><li><p>Get the global option <code>getOption(name)</code> value.</p></li>
<li><p>If the global option value is set:</p><ul><li><p>Return the value.</p></li>
</ul></li>
<li><p>If the global option value is not set:</p><ul><li><p>Notify the developer that the Dev Mode default value will be used.</p></li>
<li><p>Return the Dev Mode default value.</p></li>
</ul></li>
</ul></li>
</ul><p>When notifying the developer that the default value has changed, we strongly
recommend displaying a message (<code>devmode_message</code>) to <code><a href="https://rdrr.io/r/base/showConnections.html" class="external-link">stderr()</a></code> once every 8
hours using <code><a href="https://rlang.r-lib.org/reference/abort.html" class="external-link">rlang::inform()</a></code>. This will keep the author up to date as to
which Dev Mode options are being altered. To allow developers a chance to
disable Dev Mode messages, the message should be skipped if
<code>getOption("shiny.devmode.verbose", TRUE)</code> is not <code>TRUE</code>.</p>
<p></p><div class="sourceCode r"><pre><code><span><span class="va">get_devmode_option</span> <span class="op">&lt;-</span> <span class="kw">function</span><span class="op">(</span><span class="va">name</span>, <span class="va">default</span> <span class="op">=</span> <span class="cn">NULL</span>, <span class="va">devmode_default</span>, <span class="va">devmode_message</span><span class="op">)</span> <span class="op">{</span></span>
<span> <span class="kw">if</span> <span class="op">(</span><span class="op">!</span><span class="fu"><a href="../reference/devmode.html">in_devmode</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">{</span></span>
<span> <span class="co"># Dev Mode disabled, act like `getOption()`</span></span>
<span> <span class="kw"><a href="https://rdrr.io/r/base/function.html" class="external-link">return</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="va">name</span>, default <span class="op">=</span> <span class="va">default</span><span class="op">)</span><span class="op">)</span></span>
<span> <span class="op">}</span></span>
<span></span>
<span> <span class="co"># Dev Mode enabled, update the default value for `getOption()`</span></span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="va">name</span>, default <span class="op">=</span> <span class="op">{</span></span>
<span> <span class="co"># Notify developer</span></span>
<span> <span class="kw">if</span> <span class="op">(</span></span>
<span> <span class="op">!</span><span class="fu"><a href="https://rdrr.io/r/base/missing.html" class="external-link">missing</a></span><span class="op">(</span><span class="va">devmode_message</span><span class="op">)</span> <span class="op">&amp;&amp;</span></span>
<span> <span class="op">!</span><span class="fu"><a href="https://rdrr.io/r/base/NULL.html" class="external-link">is.null</a></span><span class="op">(</span><span class="va">devmode_message</span><span class="op">)</span> <span class="op">&amp;&amp;</span></span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/options.html" class="external-link">getOption</a></span><span class="op">(</span><span class="st">"shiny.devmode.verbose"</span>, <span class="cn">TRUE</span><span class="op">)</span></span>
<span> <span class="op">)</span> <span class="op">{</span></span>
<span> <span class="fu">rlang</span><span class="fu">::</span><span class="fu"><a href="https://rlang.r-lib.org/reference/abort.html" class="external-link">inform</a></span><span class="op">(</span></span>
<span> message <span class="op">=</span> <span class="va">devmode_message</span>,</span>
<span> .frequency <span class="op">=</span> <span class="st">"regularly"</span>,</span>
<span> .frequency_id <span class="op">=</span> <span class="va">devmode_message</span>,</span>
<span> .file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/showConnections.html" class="external-link">stderr</a></span><span class="op">(</span><span class="op">)</span></span>
<span> <span class="op">)</span></span>
<span> <span class="op">}</span></span>
<span></span>
<span> <span class="co"># Return Dev Mode default value `devmode_default`</span></span>
<span> <span class="va">devmode_default</span></span>
<span> <span class="op">}</span><span class="op">)</span></span>
<span><span class="op">}</span></span></code></pre><p></p></div></li>
</ol><p>The remaining functions in this file are used for author convenience and are
not recommended for all reimplementation situations.</p>
</div>
<div id="ref-examples">
<h2>Examples</h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="co"># Enable Shiny Developer mode</span></span></span>
<span class="r-in"><span><span class="fu">devmode</span><span class="op">(</span><span class="op">)</span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="fu">in_devmode</span><span class="op">(</span><span class="op">)</span> <span class="co"># TRUE/FALSE?</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] TRUE</span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Execute code in a temporary shiny dev mode</span></span></span>
<span class="r-in"><span><span class="fu">with_devmode</span><span class="op">(</span><span class="cn">TRUE</span>, <span class="fu">in_devmode</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="co"># TRUE</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] TRUE</span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Ex: Within shiny, we register the option "shiny.minified"</span></span></span>
<span class="r-in"><span><span class="co"># to default to `FALSE` when in Dev Mode</span></span></span>
<span class="r-in"><span><span class="kw">if</span> <span class="op">(</span><span class="cn">FALSE</span><span class="op">)</span> <span class="fu">register_devmode_option</span><span class="op">(</span></span></span>
<span class="r-in"><span> <span class="st">"shiny.minified"</span>,</span></span>
<span class="r-in"><span> devmode_message <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/paste.html" class="external-link">paste0</a></span><span class="op">(</span></span></span>
<span class="r-in"><span> <span class="st">"Using full shiny javascript file. "</span>,</span></span>
<span class="r-in"><span> <span class="st">"To use the minified version, call `options(shiny.minified = TRUE)`"</span></span></span>
<span class="r-in"><span> <span class="op">)</span>,</span></span>
<span class="r-in"><span> devmode_default <span class="op">=</span> <span class="cn">FALSE</span></span></span>
<span class="r-in"><span><span class="op">)</span> <span class="co"># \dontrun{}</span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># Used within `shiny::runApp(launch.browser)`</span></span></span>
<span class="r-in"><span><span class="fu">get_devmode_option</span><span class="op">(</span><span class="st">"shiny.minified"</span>, <span class="cn">TRUE</span><span class="op">)</span> <span class="co"># TRUE if Dev mode is off</span></span></span>
<span class="r-msg co"><span class="r-pr">#&gt;</span> shiny devmode - Using full shiny javascript file. To use the minified version, call `options(shiny.minified = TRUE)`</span>
<span class="r-msg co"><span class="r-pr">#&gt;</span> <span style="color: #555555;">This message is displayed once every 8 hours.</span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] FALSE</span>
<span class="r-in"><span><span class="va">is_minified</span> <span class="op">&lt;-</span> <span class="fu">with_devmode</span><span class="op">(</span><span class="cn">TRUE</span>, <span class="op">{</span></span></span>
<span class="r-in"><span> <span class="fu">get_devmode_option</span><span class="op">(</span><span class="st">"shiny.minified"</span>, <span class="cn">TRUE</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="op">}</span><span class="op">)</span></span></span>
<span class="r-in"><span><span class="va">is_minified</span> <span class="co"># FALSE</span></span></span>
<span class="r-out co"><span class="r-pr">#&gt;</span> [1] FALSE</span>
<span class="r-in"><span></span></span>
</code></pre></div>
</div>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
</nav></div>
</div>
<footer><div class="copyright">
<p></p><p>Developed by Winston Chang, Joe Cheng, JJ Allaire, Carson Sievert, Barret Schloerke, Garrick Aden-Buie, Yihui Xie, Jeff Allen, Jonathan McPherson, Alan Dipert, Barbara Borges, Posit Software, PBC.</p>
</div>
<div class="pkgdown">
<p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.2.0.</p>
</div>
</footer></div>
</body></html>