<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="220937" data-post-id="220937">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zimt28" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zimt28/120/9933_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zimt28
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve adapted the solution from <a class="mention" href="/u/mhanberg" rel="nofollow">@mhanberg</a>’s <a href="https://www.mitchellhanberg.com/how-i-handle-static-assets-in-my-phoenix-apps/" rel="noopener nofollow ugc">nice blog post</a> a little bit and it’s working great for me:</p>
<p><code>assets/package.json</code>:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">{
  "scripts": {
    "cpx": "./zombie.sh cpx './static/**/*' ../priv/static",
    "esbuild": "./zombie.sh esbuild ./js/app.js --target=es2015 --bundle --outdir=../priv/static/js --sourcemap --minify",
    "postcss": "./zombie.sh postcss ./css/app.css --dir ../priv/static/css",
    "watch": "NODE_ENV=development TAILWIND_MODE=watch sh -c 'npm run cpx -- --watch &amp; npm run esbuild -- --watch &amp; npm run postcss -- --watch'",
    "deploy": "NODE_ENV=production TAILWIND_MODE=build sh -c 'npm run cpx &amp; npm run esbuild &amp; npm run postcss'"
  },
  "dependencies": { .. },
  "devDependencies": { .. }
}
</code></pre>
<p><code>config/dev.exs</code>:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">config :app, App.Endpoint,
  watchers: [
    npm: [
      "run",
      "watch",
      cd: Path.expand("../assets", __DIR__)
    ]
  ]
</code></pre>
<p>(+ <code>assets/zombie.sh</code> from the <a href="https://hexdocs.pm/elixir/Port.html#module-zombie-operating-system-processes" rel="noopener nofollow ugc">Elixir documentation</a>)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="220937" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-220937" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="220937"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="221026" data-post-id="221026">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="polypush135" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  polypush135
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a href="https://github.com/phoenixframework/esbuild/issues/8#issuecomment-886782607" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/phoenixframework/esbuild/issues/8#issuecomment-886782607</a><br>
<img src="https://forum.elixirforum.com/images/emoji/apple/eyes.png?v=15" title=":eyes:" class="emoji" alt=":eyes:" loading="lazy" width="20" height="20">  <img src="https://forum.elixirforum.com/images/emoji/apple/fire.png?v=15" title=":fire:" class="emoji" alt=":fire:" loading="lazy" width="20" height="20"> <img src="https://forum.elixirforum.com/images/emoji/apple/hatched_chick.png?v=15" title=":hatched_chick:" class="emoji" alt=":hatched_chick:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="221026" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-221026" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="221026"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="225876" data-post-id="225876">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ks2211" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ks2211/120/24268_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ks2211
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey everyone,</p>
<p>I’ve been hacking at this for a few days but finally got it working—using tailwind, scss, and font-awesome with esbuild ONLY. No tailwind cli, no postcss cli because I am leveraging the esbuild plugin system…it requires you to use a script.js file but it works. I don’t need to hack together any npm commands, I did have to tweak the elixir specific configs for watchers/building but that was about it.</p>
<aside class="onebox githubgist" data-onebox-src="https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789">
  <header class="source">

      <a href="https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789" target="_blank" rel="noopener nofollow ugc">gist.github.com</a>
  </header>

  <article class="onebox-body">
    <h4><a href="https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789" target="_blank" rel="noopener nofollow ugc">https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789</a></h4>



  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p>Any feedback would be appreciated</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="225876" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-225876" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="225876"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="226151" data-post-id="226151">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="cvkmohan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cvkmohan/120/39944_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  cvkmohan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><code>npm install ../deps/phoenix ../deps/phoenix_html ../deps/phoenix_live_view</code></p>
<p>is also necessary. Otherwise, those imports in the app.js will fail.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="226151" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-226151" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="226151"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="226257" data-post-id="226257">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="slouchpie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/slouchpie/120/34819_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  slouchpie
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m still learning the <code>esbuild</code> usage in Phoenix 1.6 so my question might be ignorant.<br>
In <code>config/dev.exs</code>, is it OK to have hard-coded <code>NODE_ENV</code> as <code>"development"</code>. Should this be different for <code>prod</code> env?</p>
<p>Despite my questions, I’m glad you did your hackery and found a way to make this work. I see SCSS working in dev and in prod. <img src="https://forum.elixirforum.com/images/emoji/apple/+1.png?v=15" title=":+1:" class="emoji" alt=":+1:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="226257" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-226257" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="226257"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="226268" data-post-id="226268">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ks2211" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ks2211/120/24268_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ks2211
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The <code>mix.exs</code>, you can set NODE_ENV=production … this is explicitly needed by tailwind for purging/jit mode I believe.</p>
<p>The <code>config/dev.exs</code>, since that is specifically for development mode, I am using the NODE_ENV as development</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="226268" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-226268" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="226268"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
    <div class="postbit" id="226324" data-post-id="226324">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ks2211" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ks2211/120/24268_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ks2211
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/cnck1387" rel="nofollow">@cnck1387</a> If you ever decide to switch or add esbuild as an option, I created this to use it with tailwind JIT WITHOUT tailwind cli</p>
<aside class="onebox githubgist" data-onebox-src="https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789">
  <header class="source">

      <a href="https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789" target="_blank" rel="noopener nofollow ugc">gist.github.com</a>
  </header>

  <article class="onebox-body">
    <h4><a href="https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789" target="_blank" rel="noopener nofollow ugc">https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789</a></h4>



  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p>It’s working pretty well for us , would be happy to submit a PR if you decide to make that switch</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="226324" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-226324" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="226324"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="233574" data-post-id="233574">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Seb" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Seb/120/10346_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Seb
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m still learning the <code>esbuild</code> usage in Phoenix 1.6 so my question might be ignorant<br>
I have many npm dependencies in package.json. Since  upgrade guides request to remove that file + node_modules how esbuild my know what to compile and from where ? thoses dependencies are called in the code so they are needed… thanks</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="233574" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-233574" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="233574"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="233578" data-post-id="233578">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="marcandre" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marcandre/120/31790_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  marcandre
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The upgrade guide is wrong/incomplete. You should delete webpack related dependencies in your <code>package.json</code>, or you can start from a new empty <code>package.json</code> and re-add your dependencies.<br>
Check my comments at the end of the guide. I am still hoping that the upgrade guide can be moved to the repo and improved.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="233578" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-233578" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="233578"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="233579" data-post-id="233579">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="marcandre" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marcandre/120/31790_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  marcandre
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>One thing I don’t understand in this thread is why go with <code>cpx</code> / <code>cp -r</code> / … and not simply have the assets live in <code>/priv/static</code> directly (e.g. <code>/priv/static/images/logo.jpg</code>)? I thought that this was the idea behind the change of <code>.gitignore</code> only <code>/priv/static/assets</code>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="233579" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/taking-a-look-at-what-esbuild-would-look-like-in-a-phoenix-app/40966/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-233579" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="233579"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/40966/load_more?page=3">Load more posts (2 remaining)</a>
</div></template></turbo-stream>