Sebuah skrip kecil yang memungkinkan Anda untuk hanya polyfill fitur bila benar -benar diperlukan - tidak ada permintaan yang terbuang pada browser yang memiliki dukungan asli! ??
Script ini ~ 4.2kb un minified (121 baris) (1.04kb un minified and gzipped) , ~ 8.37kb tidak diminifikasi dengan komentar inline (121 baris) (2.12kb un minified dan gzipped) , atau ~ 1.9KB Minified (1 baris) (743b Minified and Gzipped) , demikian paongnya . ?
Lihat Penempatan untuk Catatan tentang Cara Menyebarkan Proyek pada Sistem Langsung.
Pastikan Anda tahu fitur apa yang fitur skrip Anda bergantung pada dan polyfill yang tidak didukung secara asli di browser yang Anda dukung (Anda dapat memeriksa https://caniuse.com/).
npm i dynamic-polyfiller import React from 'react' ;
import { render } from 'react-dom' ;
//The import below is the bit you need!
import dynamicPolyfill from 'dynamic-polyfiller' ;
dynamicPolyfill (
[ "IntersectionObserver" , "Object.assign" ] ,
'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js' ,
'quicklink();'
) ;dynamicPolyfill(); CATATAN: Sensitif case dynamicPolyfill( ["IntersectionObserver", "Object.assign"], 'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'quicklink();' )
onLoad ke tag yang memanggil fungsi dynamicPolyfill() dan lulus parameter Andastring atau array , tetapi bisa kosong ( '' ) atau null jika Anda tidak memuat skrip pihak ketiga.string atau array .<script></script> yang menghubungkan ke skrip ini <script src='https://cdn.jsdelivr.net/gh/willstocks-tech/dynamically-polyfill-features-for-a-script@master/dynamicpolyfill.min.js'>
</script>
onLoad ke tag yang memanggil fungsi dynamicPolyfill() dan lulus parameter Andastring atau array , tetapi bisa kosong ( '' ) atau null jika Anda tidak memuat skrip pihak ketiga.string atau array .Catatan: Memuat dari CDN masih akan menghasilkan permintaan yang berpotensi terbuang?
dynamicPolyfill( 'IntersectionObserver', 'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'quicklink();' );
dynamicPolyfill( ["IntersectionObserver", "Object.assign"], ['https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'https://other.cdn.net/script.js'], ['quicklink();', 'otherFunction();'] );
Catatan: Anda perlu memastikan bahwa sebelum Anda memanggil fungsi dynamicPolyfill() yang telah dimuat oleh skrip aktual. Jika Anda akan meng -host skrip sendiri (daripada memanggil CDN), pastikan Anda menyertakan kode skrip terlebih dahulu, maka hubungi fungsinya. Anda dapat melakukan ini dengan cara yang sama seperti di atas, tetapi ganti URL CDN dengan jalur ke file JS Anda sendiri, jika Anda tidak akan menyebutnya dari file yang sama.
<script
src='https://cdn.jsdelivr.net/gh/willstocks-tech/dynamically-polyfill-features-for-a-script@master/dynamicpolyfill.min.js'
onload='dynamicPolyfill( ["IntersectionObserver", "Object.assign"], 'https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'quicklink();')'>
</script>
<script
src='https://cdn.jsdelivr.net/gh/willstocks-tech/dynamically-polyfill-features-for-a-script@master/dynamicpolyfill.min.js'
onload='dynamicPolyfill(["IntersectionObserver", "Object.assign"], ['https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js', 'https://other.cdn.net/script.js'], ['quicklink();', 'otherFunction();'])'>
</script>
Untuk versi yang tersedia, lihat riwayat rilis repo. Saya akan merekomendasikan tetap pada "rilis terbaru"!
Lihat juga daftar kontributor yang telah berpartisipasi dalam nugget kecil ini!
Harap baca Contributing.md untuk perincian tentang kode perilaku, dan proses untuk mengirimkan permintaan tarik.
Proyek ini dilisensikan di bawah lisensi MIT - lihat file lisensi.md untuk detailnya