Webpack 的 externals 是什么?依赖改成 CDN 引入值得吗?
简答题困难893 次浏览
参考答案与解析
externals 告诉 Webpack:某些依赖不要打进包里,运行时它们已经在页面上了,直接去全局变量(或者别的模块系统)里拿。典型用法是把 React、Vue、ECharts 这类大依赖改成从 CDN 用 script 标签引入,打包体积和构建时间都会明显下降。但它也带来了新的风险:多了一个外部域名的依赖、版本要手动对齐、没法 Tree Shaking。而且浏览器早就按站点隔离缓存了,「用户在别的网站缓存过同一个 CDN 文件」这个好处基本不存在了。
速记要点
- externals:不打包,运行时从全局变量取
- 包小了、构建快了,但多了外部依赖
- 缓存分区后,跨站共享 CDN 缓存已失效
- 版本要手动对齐
