<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: d-suke</title>
    <description>The latest articles on DEV Community by d-suke (@d_suke).</description>
    <link>https://dev.to/d_suke</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F672253%2F831a930e-2b4e-4339-b6c2-4d11f9732896.jpeg</url>
      <title>DEV Community: d-suke</title>
      <link>https://dev.to/d_suke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/d_suke"/>
    <language>en</language>
    <item>
      <title>How to optimize images at build (export) time using next/image</title>
      <dc:creator>d-suke</dc:creator>
      <pubDate>Mon, 13 Jun 2022 10:34:09 +0000</pubDate>
      <link>https://dev.to/d_suke/how-to-optimize-images-at-build-export-time-using-nextimage-4be2</link>
      <guid>https://dev.to/d_suke/how-to-optimize-images-at-build-export-time-using-nextimage-4be2</guid>
      <description>&lt;p&gt;As of May 2022, the only way to use &lt;code&gt;next/image&lt;/code&gt; with &lt;code&gt;next export&lt;/code&gt; is to use an external URL with an The only way to use &lt;code&gt;next/image&lt;/code&gt; with &lt;code&gt;next export&lt;/code&gt; is to use an external URL with an image provider.&lt;br&gt;
(since &lt;code&gt;next/image&lt;/code&gt; uses the Nodejs server-based image optimization API by default)&lt;/p&gt;

&lt;p&gt;However, this is inconvenient if you are building a simple website or want to build one without a Node.js server.&lt;/p&gt;

&lt;p&gt;Therefore, we have developed a library to solve this problem.&lt;br&gt;
If you are looking for a solution to optimize your images at build time using &lt;code&gt;next/image&lt;/code&gt;, this one is for you!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/dc7290" rel="noopener noreferrer"&gt;
        dc7290
      &lt;/a&gt; / &lt;a href="https://github.com/dc7290/next-export-optimize-images" rel="noopener noreferrer"&gt;
        next-export-optimize-images
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Optimize images at build time with Next.js.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://next-export-optimize-images.vercel.app" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/af0a0f9d6f2967d14b4e35e99d5a379c168d4ed276837c83bf1fb21cb4515cc9/68747470733a2f2f6e6578742d6578706f72742d6f7074696d697a652d696d616765732e76657263656c2e6170702f6f672e706e67"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;a href="https://www.npmjs.com/package/next-export-optimize-images" rel="nofollow noopener noreferrer"&gt;&lt;img alt="npm" src="https://camo.githubusercontent.com/923d0467e9b0db9dd8a8cc02eecb5a15cfd67ea2d4b14500daad68b3e5c8a752/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6e6578742d6578706f72742d6f7074696d697a652d696d61676573"&gt;&lt;/a&gt;
&lt;a href="https://npmcharts.com/compare/next-export-optimize-images?minimal=true" rel="nofollow noopener noreferrer"&gt;&lt;img alt="downloads" src="https://camo.githubusercontent.com/2e50fd86fdb081c487a13acf74c458706a80f6bb7ea2247b2d7206698d8cc3e2/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6e6578742d6578706f72742d6f7074696d697a652d696d61676573"&gt;&lt;/a&gt;
&lt;a href="https://www.npmjs.com/package/next-export-optimize-images" rel="nofollow noopener noreferrer"&gt;&lt;img alt="License" src="https://camo.githubusercontent.com/d0d33acb629188c9fc962342564d068db8361ef64a54de2373a2b55908cb329d/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f6c2f6e6578742d6578706f72742d6f7074696d697a652d696d616765733f6c6162656c3d4c6963656e7365"&gt;&lt;/a&gt;
&lt;a href="https://github.com/dc7290/next-export-optimize-images/actions/workflows/node.js.yml" rel="noopener noreferrer"&gt;&lt;img alt="Node.js CI" src="https://github.com/dc7290/next-export-optimize-images/actions/workflows/node.js.yml/badge.svg"&gt;&lt;/a&gt;
&lt;a href="https://github.com/dc7290/next-export-optimize-images/stargazers" rel="noopener noreferrer"&gt;&lt;img alt="GitHub Repo stars" src="https://camo.githubusercontent.com/431c58a15f7ed3030fcabcfded39b74100c1e5209f1868858311f722b3bca186/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6463373239302f6e6578742d6578706f72742d6f7074696d697a652d696d616765733f7374796c653d736f6369616c"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Next Export Optimize Images&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;Using this repository, you can get the full benefits of &lt;code&gt;next/image&lt;/code&gt; even when using &lt;code&gt;next export&lt;/code&gt; by doing image optimization at build time.&lt;/p&gt;
&lt;p&gt;This makes it possible to build a high performance website with this solution, whether you want to build a simple website or a completely static output.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Feature&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Optimize images at build time.&lt;/li&gt;
&lt;li&gt;All options for &lt;code&gt;next/image&lt;/code&gt; available&lt;/li&gt;
&lt;li&gt;Convert formats (png → webp, etc.)&lt;/li&gt;
&lt;li&gt;Download external images locally.&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;sharp&lt;/code&gt;, so it's fast.&lt;/li&gt;
&lt;li&gt;Cache prevents repeating the same optimization&lt;/li&gt;
&lt;li&gt;Support TypeScript&lt;/li&gt;
&lt;li&gt;Support AppRouter&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;yarn add -D next-export-optimize-images&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Document Site&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href="https://next-export-optimize-images.vercel.app" rel="nofollow noopener noreferrer"&gt;https://next-export-optimize-images.vercel.app&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;License&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Next Export Optimize Images is available under the MIT License.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/dc7290/next-export-optimize-images" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;ul&gt;
&lt;li&gt;Document site&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://next-export-optimize-images.vercel.app/" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fnext-export-optimize-images.vercel.app%2Fog.png" height="auto" class="m-0"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://next-export-optimize-images.vercel.app/" rel="noopener noreferrer" class="c-link"&gt;
          Next Export Optimize Images
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Documentation site for next-export-optimize-images.
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
        next-export-optimize-images.vercel.app
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;The main features include&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Optimize images at build time.&lt;/li&gt;
&lt;li&gt;All options for &lt;code&gt;next/image&lt;/code&gt; available&lt;/li&gt;
&lt;li&gt;Convert formats (png → webp, etc.)&lt;/li&gt;
&lt;li&gt;Download external images locally.&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;sharp&lt;/code&gt;, so it's fast.&lt;/li&gt;
&lt;li&gt;Cache prevents repeating the same optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;1 - Install the package.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn add &lt;span class="nt"&gt;-D&lt;/span&gt; next-export-optimize-images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2 - Add the plugin to &lt;code&gt;next.config.js&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;withExportImages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next-export-optimize-images&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;withExportImages&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="c1"&gt;// write your next.js configuration values.&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3 - Change the build command in &lt;code&gt;package.json&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;{
&lt;span class="gd"&gt;-  "export": "next build &amp;amp;&amp;amp; next export",
&lt;/span&gt;&lt;span class="gi"&gt;+  "export": "next build &amp;amp;&amp;amp; next export &amp;amp;&amp;amp; next-export-optimize-images",
&lt;/span&gt;}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4 - Use &lt;code&gt;next/image&lt;/code&gt; as usual.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/image&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/images/img.png&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1920&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1280&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="c1"&gt;// Or import as follows&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Image&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./img.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;p&gt;Default behavior can be changed as needed.&lt;br&gt;
Create &lt;code&gt;export-images.config.js&lt;/code&gt; in the root.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * @type {import('next-export-optimize-images').Config}
 */&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// your configuration values.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For more information, please visit &lt;a href="https://next-export-optimize-images.vercel.app/docs/configuration" rel="noopener noreferrer"&gt;this document site&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage examples
&lt;/h2&gt;

&lt;p&gt;Here are some examples of usage.&lt;br&gt;
However, they are basically the same as the usage of &lt;code&gt;next/image&lt;/code&gt;, so please refer to the official documentation &lt;a href="https://nextjs.org/docs/api-reference/next/image" rel="noopener noreferrer"&gt;here&lt;/a&gt; for details.&lt;/p&gt;
&lt;h3&gt;
  
  
  Set the &lt;code&gt;placeholder&lt;/code&gt;
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Image&lt;/span&gt; &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"blur"&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/images/img.png"&lt;/span&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1920&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1280&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="c1"&gt;// Or import as follows&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Image&lt;/span&gt; &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"blur"&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./img.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Set &lt;code&gt;layout&lt;/code&gt; to &lt;code&gt;fill&lt;/code&gt;
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Image&lt;/span&gt; &lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"fill"&lt;/span&gt; &lt;span class="na"&gt;objectFit&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"cover"&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/images/img.png"&lt;/span&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1920&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1280&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Download external images locally
&lt;/h3&gt;

&lt;p&gt;This feature is a unique behavior of this library.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Image&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"https://next-export-optimize-images.vercel.app/og.png"&lt;/span&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"1280"&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When in production, it will be rendered as follows. (Only important parts are shown.)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt;
  &lt;span class="na"&gt;srcset&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/_next/static/chunks/images/og_1920_75.png 1x, /_next/static/chunks/images/og_3840_75.png 2x"&lt;/span&gt;
  &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/_next/static/chunks/images/og_3840_75.png"&lt;/span&gt;
&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During development, as with local images, no optimization is performed.&lt;br&gt;
Also, no downloading to local is performed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt;
  &lt;span class="na"&gt;srcset&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"https://next-export-optimize-images.vercel.app/og.png?width=1920 1x, https://next-export-optimize-images.vercel.app/og.png?width=3840 2x"&lt;/span&gt;
  &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"https://next-export-optimize-images.vercel.app/og.png?width=3840"&lt;/span&gt;
&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Comparison
&lt;/h2&gt;

&lt;h3&gt;
  
  
  next-image-export-optimizer
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Niels-IO/next-image-export-optimizer" rel="noopener noreferrer"&gt;https://github.com/Niels-IO/next-image-export-optimizer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since this library is very similar to ours, it would be very good for you to try this one as well.&lt;/p&gt;

&lt;p&gt;A brief comparison with our library reveals the following characteristics for your reference.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;next-export-optimize-images&lt;/th&gt;
&lt;th&gt;next-image-export-optimizer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;All options for &lt;code&gt;next/image&lt;/code&gt; are available&lt;/td&gt;
&lt;td&gt;○&lt;/td&gt;
&lt;td&gt;△ *1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Specify the image folder&lt;/td&gt;
&lt;td&gt;None in particular (free)&lt;/td&gt;
&lt;td&gt;Only in the specified directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optimize only the images you use&lt;/td&gt;
&lt;td&gt;○&lt;/td&gt;
&lt;td&gt;× *2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;next/dymamic&lt;/code&gt; support&lt;/td&gt;
&lt;td&gt;×&lt;/td&gt;
&lt;td&gt;○&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;*1: Only strings can be specified in the src attribute.&lt;br&gt;
*2: images of various widths with layout="intrinsic" (since 1x and 2x images are sufficient at this time).&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Next.js is a very easy-to-use tool that can be used not only for web application development, but also for static sites.&lt;br&gt;
Next.js is so easy to use that I think you will want to use it for static sites as well.&lt;br&gt;
If you have any problems with image optimization, please use this library!&lt;/p&gt;

&lt;p&gt;If you have any problems with this library or suggestions for features, please do not hesitate to contact me through&lt;br&gt;
Issue or my Twitter!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dc7290/next-export-optimize-images/issues" rel="noopener noreferrer"&gt;https://github.com/dc7290/next-export-optimize-images/issues&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/d_suke_09" rel="noopener noreferrer"&gt;https://twitter.com/d_suke_09&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>performance</category>
      <category>webdev</category>
      <category>react</category>
    </item>
  </channel>
</rss>
