关于webpack的替代性问题(为何用js编写)

最近在研究webpack,突然有几个小问题很有困惑,不懂就问,希望大佬解惑。
第一个就是webpack为什么用js来驱动,最近涌现了很多编译js的生态工具,比如说deno的底层用了rust,是一个非常高效的语言,速度完全和js不是一个量级,那为什么webpack不用rust去写呢。
第二个问题是esbuild的出现,基于go语言,它的性能也是webpack的百倍以上,可必须基于esmodule,为什么之前的commonjs就不可以呢(一直没太明白为什么cjs不能很好的treeshaking)
第三个问题是语言的差异能造成这么大的性能差距吗,之前好像看过一些性能测试,好像js不会比go之类的语言差那么多性能昂啊

阅读 2.4k
3 个回答

这个问题类似nodejs的出现,就是为了同一种语言的便捷性

webpack是打包的生产力工具,不是生产环境,相对性能影响没有那么大。
如果用rust或者用C来写,固然性能可以得到有效提升。用其他语言来写,就意味着不同的生态和相对的语言的门槛,用js来写,用户能读得懂webpack源码,也能定制自己的需求

可能你说的情况未来会实现,但是当前是不大现实的,具体原因如下:
1.沉没成本,重写 webpack 是个大工程,或许未来会有这样的全新版本吧
2.兼容性,JS 出来相对较早
3.可以参考一下用户基础,
即使是 1/3 的 JS 用户,可能也超过新语言的全部活跃人口
https://segmentfault.com/a/11...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题