<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>前端工程化 on 疯狂的键盘</title><link>https://jidzhang.github.io/tags/%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%8C%96/</link><description>Recent content in 前端工程化 on 疯狂的键盘</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jidzhang.github.io/tags/%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>Bun vs npm：为什么我们需要另一个 JavaScript 运行时和包管理器？</title><link>https://jidzhang.github.io/posts/2026-04-08-bun-vs-npm/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://jidzhang.github.io/posts/2026-04-08-bun-vs-npm/</guid><description>&lt;h2 id="先说结论"&gt;先说结论&lt;/h2&gt;
&lt;p&gt;如果你只用过 Node.js + npm，觉得&amp;quot;够用了&amp;quot;，这很正常。&lt;strong&gt;Bun 的核心卖点是速度&lt;/strong&gt;——它把 JavaScript 生态里最慢的几个环节（安装依赖、运行脚本、启动服务器、跑测试）全部重写了一遍，速度提升通常是 3-30 倍。&lt;/p&gt;
&lt;p&gt;但速度只是表象。Bun 更深层的野心是：&lt;strong&gt;把 Node.js 生态里需要五六个工具才能搞定的事，用一个工具全包了。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="npm-是什么"&gt;npm 是什么？&lt;/h2&gt;
&lt;p&gt;npm（Node Package Manager）从 2010 年随 Node.js 诞生，干两件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;包管理器&lt;/strong&gt;：安装、管理第三方依赖（&lt;code&gt;npm install&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;脚本运行器&lt;/strong&gt;：执行 &lt;code&gt;package.json&lt;/code&gt; 里定义的脚本（&lt;code&gt;npm run dev&lt;/code&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;它是 JavaScript 生态的基石。截至 2026 年，npm 仓库有超过 300 万个包，是全球最大的软件注册表。&lt;/p&gt;
&lt;h3 id="npm-的问题"&gt;npm 的问题&lt;/h3&gt;
&lt;p&gt;老实说，npm 本身没什么大问题，但它&lt;strong&gt;慢&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;npm install&lt;/code&gt; 一个中型项目可能要 10-30 秒&lt;/li&gt;
&lt;li&gt;冷启动一个 Node.js 服务通常需要几百毫秒到几秒&lt;/li&gt;
&lt;li&gt;跑测试需要额外装 Jest 或 Vitest&lt;/li&gt;
&lt;li&gt;打包需要额外装 Webpack/Vite/esbuild&lt;/li&gt;
&lt;li&gt;TypeScript 需要额外配置 ts-node 或 tsc&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些&amp;quot;额外安装&amp;quot;才是真正的痛点。&lt;/p&gt;
&lt;h2 id="bun-是什么"&gt;Bun 是什么？&lt;/h2&gt;
&lt;p&gt;Bun 是 2022 年由 Jarred Sumner 创建的一个 JavaScript/TypeScript 运行时，用 Zig 语言编写。注意，Bun &lt;strong&gt;不是&lt;/strong&gt; npm 的替代品那么简单，它是一个&amp;quot;全家桶&amp;quot;：&lt;/p&gt;</description></item></channel></rss>