天天看點

webpack優化篇(五十):使用動态 Polyfill 服務

說明

玩轉 webpack 學習筆記

babel-polyfill 打包後體積占比大

babel-polyfill 打包後體積:88.49k,占比 29.6%

webpack優化篇(五十):使用動态 Polyfill 服務

Promise 的浏覽器支援情況

比如:promise 可以打開網址​​https://caniuse.com/​​檢視

webpack優化篇(五十):使用動态 Polyfill 服務

建構體積優化:動态 Polyfill

方案 優點 缺點 是否采用
babel-polyfill React 16 官方推薦 1、包體積200k+,難以單獨抽離Map、Set。2、項目裡 react 是單獨引用的 cdn,如果要用它需要單獨建構一份放 react 前加載
babel-plugin-transform-runtime 能隻 polyfilI 用到的類或方法,相對體積較小 不能 polyfill 原型上的方法,不适用于業務項目的複雜開發環境
自己寫 Map、Set 的 polyfill 定制化高、體積小 1、重複造輪子,容易在日後年久失修成為坑;2、即使體積小,依然所有使用者都要加載
polyfill-service 隻給使用者傳回需要的 polyfill,社群維護 部分國内奇葩浏覽器 UA 可能無法識别(但可以使用降級傳回所需全部 polyfill) ✔️

Polyfill Service原理

通路頁面,發送請求,識别 User Agent,然後下發不同的 Polyfill

webpack優化篇(五十):使用動态 Polyfill 服務

如何使用動态 Polyfill service

​polyfill.io​

​ 官方提供的服務

webpack優化篇(五十):使用動态 Polyfill 服務

基于官方自建 polyfill 服務

webpack優化篇(五十):使用動态 Polyfill 服務

我們可以打開:​​https://polyfill.io/v3/polyfill.min.js​​

在谷歌浏覽器打開的時候,傳回如下:

webpack優化篇(五十):使用動态 Polyfill 服務

在 iphoone 5/se 的情況下傳回如下:

Polyfill service 問題