280 - 《构建工具应该包含哪些能力》
发布于 2023年3月28日
这篇文章回答的问题是,如果要实现一个构建工具,应该覆盖哪些能力?本文基于 tooling.report 的内容做了一些调整。
注:感觉必备的基础能力我加粗了。
源码转义。
- 支持 TypeScript
- 支持 JavaScript 高级语法
- 压缩(包括模块、语句合并)
- Tree Shaking
- 常量标志(比如 process.env.NODE_ENV 的处理)
- 图片压缩(大家都基于 imagemin)
- SVG 压缩(大家都基于 svgo)
输出格式。
- CommonJS
- ES Module
非 JavaScript 资源。
- CSS(包括 CSS Modules、Inline 引入、CSS Extract、以 URL 的方式引入)
- HTML(包括 Inline 载入脚本、外链载入脚