141 - 《手撕源码15:father 4》

发布于 2022年6月27日

https://github.com/umijs/father-next

father 是面向 npm 库研发的工具,预计这周会发 4 的 rc。虽然全程参与了设计,但源码是由 dumi 作者辟起操刀的,所以趁着 rc 前翻了一遍源码,提了些 PR 和建议。

father 4 有啥卖点?

1、基于 @umijs/core 的工具实现。所以和 umi 的代码组织、插件体系、配置方式都是一脉相承,这意味着你也可以给 father 写插件了。如果你看过 umi 的源码,看 father 的源码会非常熟悉。除了 @umijs/core,father 还用了 @umijs/bundler-webpack、@umijs/utils 和 @umijs/babel-preset-umi 等底层库。如果你有写工具的需求,并且需要插件体系、配置读取等,这一套可能也适合你。

2、全功能的 npm 包打包工具。支持 umd、esm、cjs,支持 browser 和 node,支持 dts。umd 基于 @umijs/bundler-webpack(背后是 webpack);esm 和 cjs 是 bundless 的方式,即 src 下的每个文件在 output 目录都会产生一个对应的文件,这个 rfc 时讨论了好久,选择 bundless 是因为相比 bundle 的方式更通用,实现是基于 babel 或 esbuild,esbuild 针对

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。