<story><title>Pika/web: Web Apps Without the Bundler</title><url>https://www.pikapkg.com/blog/pika-web-a-future-without-webpack/#</url></story><parent_chain></parent_chain><comment><author>segphault</author><text>This solution pulls in 155 packages from npm, including multiple versions of bullshit packages like &amp;quot;kind-of&amp;quot; that it can&amp;#x27;t deduplicate. One of the direct dependencies is a library that renders a loading spinner in command line interfaces, which itself pulls in over 20 transitive dependencies.&lt;p&gt;The reason that JavaScript build tooling is so complex and introduces so much overhead is that the ecosystem&amp;#x27;s culture is fundamentally broken. Every single one of these tools is a raging dumpster fire because it&amp;#x27;s built on top of all of these layers of low-quality interdependent crap.&lt;p&gt;I&amp;#x27;m increasingly moving towards module-type script tags and standard ES modules everywhere, with no build step during development. It&amp;#x27;s still challenging to use node-targeted modules in this fashion, so I really do appreciate that people are working on finding ways to make it work. I just wish that we could do it without pulling in so much third-party code and the large surface area for failure and security problems that go with it.</text></comment>
<story><title>Pika/web: Web Apps Without the Bundler</title><url>https://www.pikapkg.com/blog/pika-web-a-future-without-webpack/#</url></story><parent_chain></parent_chain><comment><author>est31</author><text>I&amp;#x27;m not sure why this would be desirable. Sure, bundlers are slow, but that&amp;#x27;s what projects like pax [1] are for. Bundlers create one single file instead of the browser having to download your entire possibly huge dependency tree. Sure, with HTTP&amp;#x2F;2.0 and the upcoming QUIC or HTTP&amp;#x2F;3.0 overhead of this is minimized, but it&amp;#x27;s still not &lt;i&gt;zero&lt;/i&gt;. There is also a cognitive overhead of having to configure the server to push all the deps to clients otherwise you have constant back &amp;amp; forth where the client is fetching a file, then the server is answering, then the client is finding out it needs those other files, etc etc. Unless you are using global CDNs, expect latencies to be &amp;gt; 50ms for each such step, if not hundreds of ms, and this times the depth of your dependency graph. Bundlers also do dead code analysis.&lt;p&gt;There are really two solutions to this: either avoid using js dependencies, at which point you won&amp;#x27;t need npm or pika or whatever, or use bundlers.&lt;p&gt;[1]: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nathan&amp;#x2F;pax&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nathan&amp;#x2F;pax&lt;/a&gt;</text></comment>