支持擴展類型: wasm
WebAssembly 是一個新興的技術,但在不久的將來,它會對 web 產(chǎn)生巨大的影響?,F(xiàn)在的主流瀏覽器都支持,Nodejs 也是。WebAssembly 將啟用多種語言,而不僅僅是那些可以編譯成 JavaScript 的語言。
系統(tǒng)底層的語言比如:C 和 Rust 都可以編譯成二進制格式的 WebAssembly,這樣減少文件大小并且加快了運行時。編譯后的 WebAssembly 代碼具有原生級別的性能,一般來說比同等的 JavaScript 更快。在不久的將來,我們很可能會看到 JavaScript 庫開始利用 WebAssembly 來實現(xiàn)代碼中關鍵的性能部分。
在 Parcel 中非常容易使用 WebAssembly。假設你有一個.wasm文件,直接像往常一樣導入它。同步和異步導入都是支持的。
// 同步導入
import { add } from './add.wasm'
console.log(add(2, 3))
// 異步導入
const { add } = await import('./add.wasm')
console.log(add(2, 3))
當同步導入一個.wasm文件時,Parcel 自動生成額外的代碼以便在執(zhí)行 JavaScript 包之前載入文件。這意味著二進制的 WebAssembly 不會以字符串的方式內(nèi)聯(lián)到你的 JavaScript 中,實際上正如你所期望的那樣作為單獨的二進制文件載入。如此一來,你的代碼依然是同步的工作方式,Parcel 會在所有代碼工作之前處理這些需要加載的依賴項。
這些是所有被 Parcel 支持的bundle 加載器,這些模塊的運行時是了解如何異步加載特定的文件格式。在以往的版本,支持動態(tài)導入的 JavaScript 及 CSS 的包加載器都是寫死的。在 Parcel v1.5.0 版本,這些都是完全插件化了,你可以在插件中定義你自己的包加載器!在不久的將來這將開啟大量有趣的功能,比如自定義的 Glimmer 的二進制模板等。非常期待!
更多建議: