什么时候用 bundless、什么时候用 bundle

chat

什么时候用 bundless(preserve-modules / transpile-only)

要发布的是“库源码形态”:希望消费方(Vite/Webpack/Next/Rspack)来完成最终打包与优化。 要更好的 tree-shaking/按需引入:保留模块结构,用户只引到用到的文件。 工具库/SDK/纯函数库:基本没有 CSS/图片等资源,或者你愿意把这些交给使用方处理。 多入口很多(exports 很细):bundless 更自然,避免你自己把入口全合并导致按需失效。 追求更快构建:尤其在 CI 里,bundless 往往更快、更稳定(主要成本在 d.ts)。 典型产物:dist/esm/**、dist/cjs/**、dist/types/**(很多文件)

什么时候用 bundle(Rollup/Vite 打成一个/少量文件)

必须产出 UMD/IIFE:给老系统、<script> 直引、无需打包工具的场景用。 你想“一键可用、零构建消费”:例如浏览器插件注入脚本、内嵌小部件、CDN 直接用。 组件库想“把样式/资源一起收敛”:比如希望产物自带 CSS(或注入样式),减少使用方配置。 你需要做强一致的运行时封装:比如把依赖策略、polyfill、环境探测都锁死在产物里。 典型产物:dist/umd/index.umd.js(少量文件,可能另带 style.css) 实操建议(团队模板最稳的默认) 默认:bundless 输出 ESM + CJS + d.ts(给现代工程消费,按需 & tree-shaking 最好) 可选:bundle 输出 UMD(默认关闭)(只有确实存在 script/老系统需求才打开) 一句话:现代工程消费用 bundless;要“不给构建器也能用/必须 UMD”时用 bundle。

版权声明:
作者:东明兄
链接:https://blog.crazyming.com/note/3300/
来源:CrazyMing
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
什么时候用 bundless、什么时候用 bundle
什么时候用 bundless(preserve-modules / transpile-only) 要发布的是“库源码形态”:希望消费方(Vite/Webpack/Next/Rspack)来完成最终打包与优化。 要……
<<上一篇
下一篇>>
chat