Polyfill
我們希望瀏覽器提供一些特性,但是沒有,然后我們自己寫一段代碼來實現(xiàn)他,那這段代碼就是補丁。
一般處理方式:babel-polyfill.js
引入
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.2.5/polyfill.js"></script>
然后就 es6、es7 特性隨便寫了,但缺點是,babel-polyfill 包含所有補丁,不管瀏覽器是否支持,也不管你的項目是否有用到,都全量引了
動態(tài)補丁polyfill.io
在需要補丁的瀏覽器會加載補丁代碼,不需要補丁的瀏覽器不會加載代碼,比如:
<script src="https://polyfill.io/v3/polyfill.min.js?features=Promise%2CArray.prototype.includes"></script>
然后在 Chrome@71 下的輸出是:
/* Disable minification (remove `.min` from URL path) for more info */
啥都沒有,因為 Promsie 特性 Chrome@71 已經(jīng)支持了。
阿里也搭了個服務(wù),可以考慮引用阿里的
<script src="https://polyfill.alicdn.com/polyfill.min.js?features=Promise%2CArray.prototype.includes"></script>