有时候在咖啡店里听朋友抱怨,老旧的构建链子像拖拉机一样慢,甚至把调试时间拉到凌晨。于是我不禁想:如果浏览器和运行时已经能直接理解 TypeScript、CSS‑in‑JS 甚至图形化的 UI 描述,我们还需要像 webpack 那样的「打包神器」吗?
最初,构建工具是为了解决模块化的碎片化:把分散的 .js、.css、.svg 合并成浏览器能直接加载的文件。那时候的浏览器只会识别 <script src="...">,于是「打包」成一个大文件成了唯一的出路。后来,热更新、代码分割、Tree‑shaking 让工具链越来越厚重,甚至出现了「构建即服务」的概念。
近几年,ESM 在浏览器里已经是标配,甚至有实验性的 import "<url>" 能直接拉取远端模块。Deno 把 TypeScript 当作第一语言,运行时会在后台悄悄把它编译成 JavaScript。想象一下,如果所有主流浏览器都把 .tsx、.scss 当作可直接解析的资源,开发者只需要写代码,交给浏览器的「即时编译」去完成剩下的事。
边缘节点已经能跑 WebAssembly,甚至直接执行 Rust、Go 编译后的二进制。把业务逻辑、UI 描述、数据验证全部写在同一个「函数」里,部署到 CDN 边缘,省去本地打包、上传、再部署的环节。这样一来,构建工具的价值从「把代码变成浏览器能跑的东西」转向「提供更细粒度的性能分析」或「生成离线缓存清单」之类的辅助功能。
所以说,构建工具或许不会“一刀切”消失,而是会从「必须」变成「可选」的角色。你觉得在不久的将来,打开编辑器敲几行代码就能直接在浏览器里跑出来的日子会不会成为常态?如果真的如此,今天我们花在配置 Babel、调研插件的时间,或许会被重新分配到业务创新上。
参与讨论
这玩意以后真能一键跑?🤔
前几天搞了个小项目,ESM直接上浏览器,确实省事多了
Deno那个TS支持其实还有坑,依赖解析老出问题
要是所有浏览器都原生支持TSX就好了,现在配webpack太折磨
私有库这块肯定还得打包,公司安全扫描过不了咋办
边缘执行代码听着玄乎,实际延迟说不定更严重
你说的即时编译,是不是有点像当年Applet那种翻车现场
懒加载还是得靠工具拆包吧,不然首屏太重了
我之前也踩过这坑,降级ES5兼容老IE真是噩梦
现在写完代码直接刷浏览器看看效果,已经爽到不想配构建了
那如果连CSS-in-JS都不用转义了,styled-components会不会更香?