<p dir="auto">The new JSX transform don't support preact from <code class="notranslate">deno.json</code>:</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;compilerOptions&quot;: {
    &quot;jsx&quot;: &quot;react-jsx&quot;,
    &quot;jsxImportSource&quot;: &quot;https://esm.sh/preact&quot;,
    &quot;lib&quot;: [
      &quot;dom&quot;,
      &quot;deno.ns&quot;
    ]
  }
}"><pre class="notranslate">{
  <span class="pl-ent">"compilerOptions"</span>: {
    <span class="pl-ent">"jsx"</span>: <span class="pl-s"><span class="pl-pds">"</span>react-jsx<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"jsxImportSource"</span>: <span class="pl-s"><span class="pl-pds">"</span>https://esm.sh/preact<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"lib"</span>: [
      <span class="pl-s"><span class="pl-pds">"</span>dom<span class="pl-pds">"</span></span>,
      <span class="pl-s"><span class="pl-pds">"</span>deno.ns<span class="pl-pds">"</span></span>
    ]
  }
}</pre></div>
<p dir="auto">but with <code class="notranslate">@jsxImportSource</code> comment works:</p>
<div class="highlight highlight-source-tsx notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="/** @jsxImportSource https://esm.sh/preact */

export default () =&gt; &lt;h1&gt;Hi&lt;/h1&gt;"><pre class="notranslate"><span class="pl-c">/** <span class="pl-k">@jsxImportSource</span> https://esm.sh/preact */</span>

<span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-c1">&lt;</span><span class="pl-ent">h1</span><span class="pl-c1">&gt;</span>Hi<span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">h1</span><span class="pl-c1">&gt;</span></pre></div>
<p dir="auto">__</p>
<p dir="auto">deno 1.17.1 (release, aarch64-apple-darwin)<br>
v8 9.7.106.15<br>
typescript 4.5.2</p>
<p dir="auto">I'm not sure if it's known but it seems remote dynamic import is quite slow. For example</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="async function main() {
  const t = performance.now();
  await Promise.all([
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
  ]);
  console.log(performance.now() - t);
}
await main();"><pre class="notranslate"><span class="pl-k">async</span> <span class="pl-k">function</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-k">const</span> <span class="pl-s1">t</span> <span class="pl-c1">=</span> <span class="pl-s1">performance</span><span class="pl-kos">.</span><span class="pl-en">now</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-k">await</span> <span class="pl-smi">Promise</span><span class="pl-kos">.</span><span class="pl-en">all</span><span class="pl-kos">(</span><span class="pl-kos">[</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
  <span class="pl-kos">]</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">performance</span><span class="pl-kos">.</span><span class="pl-en">now</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">-</span> <span class="pl-s1">t</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
<span class="pl-k">await</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">Above took approx. 55 ms with <code class="notranslate">deno run -A --no-check ./test.ts</code>. It seems the number of remote imports in the target file affect the performance.</p>
<p dir="auto">Additionally, it seems remote dynamic import does not use cache. For example</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// test.ts
async function main() {
  const t = performance.now();
  await Promise.all([
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
    import(&quot;https://deno.land/x/denops_core@v2.0.3/mod.ts&quot;),
  ]);
  console.log(performance.now() - t);
}
await main();"><pre class="notranslate"><span class="pl-c">// test.ts</span>
<span class="pl-k">async</span> <span class="pl-k">function</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-k">const</span> <span class="pl-s1">t</span> <span class="pl-c1">=</span> <span class="pl-s1">performance</span><span class="pl-kos">.</span><span class="pl-en">now</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-k">await</span> <span class="pl-smi">Promise</span><span class="pl-kos">.</span><span class="pl-en">all</span><span class="pl-kos">(</span><span class="pl-kos">[</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-k">import</span><span class="pl-kos">(</span><span class="pl-s">"https://deno.land/x/denops_core@v2.0.3/mod.ts"</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
  <span class="pl-kos">]</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">performance</span><span class="pl-kos">.</span><span class="pl-en">now</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">-</span> <span class="pl-s1">t</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
<span class="pl-k">await</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">Above took approx. 500 ms with <code class="notranslate">deno run -A --no-check ./test.ts</code> even the URL is just repeated.</p>