<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rollup on Coderrob</title><link>https://coderrob.com/tags/rollup/</link><description>Recent content in Rollup on Coderrob</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 24 Aug 2024 00:32:53 -0500</lastBuildDate><atom:link href="https://coderrob.com/tags/rollup/index.xml" rel="self" type="application/rss+xml"/><item><title>Rollup, UUID, and Error Crypto getRandomValues() Not Supported - Solved</title><link>https://coderrob.com/posts/rollup-and-error-crypto-getrandomvalues-not-supported/</link><pubDate>Sat, 24 Aug 2024 00:32:53 -0500</pubDate><guid>https://coderrob.com/posts/rollup-and-error-crypto-getrandomvalues-not-supported/</guid><description>&lt;p&gt;I ran into this error while using Rollup and the &lt;code&gt;uuid&lt;/code&gt; package:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Error: Crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The problem? It boiled down to this small mistake in my Rollup config:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0f0"&gt;// rollup.config.js
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;plugins: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nodeResolve({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extensions: [&lt;span style="color:#87ceeb"&gt;&amp;#39;.ts&amp;#39;&lt;/span&gt;, &lt;span style="color:#87ceeb"&gt;&amp;#39;.js&amp;#39;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exportConditions: &lt;span style="color:#87ceeb"&gt;&amp;#39;node&amp;#39;&lt;/span&gt;, &lt;span style="color:#0f0"&gt;// Wrong: should be an array
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0f0"&gt;// Other plugins...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The solution was simple. &lt;code&gt;exportConditions&lt;/code&gt; needs an array, not a string:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0f0"&gt;// rollup.config.js
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;plugins: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nodeResolve({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extensions: [&lt;span style="color:#87ceeb"&gt;&amp;#39;.ts&amp;#39;&lt;/span&gt;, &lt;span style="color:#87ceeb"&gt;&amp;#39;.js&amp;#39;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exportConditions: [&lt;span style="color:#87ceeb"&gt;&amp;#39;node&amp;#39;&lt;/span&gt;], &lt;span style="color:#0f0"&gt;// Fixed: now it&amp;#39;s an array
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0f0"&gt;// Other plugins...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;TypeScript would&amp;rsquo;ve caught this, but in plain JS, it slipped through. Lesson (re)learned. Always verify.&lt;/p&gt;</description></item></channel></rss>