WebAssembly
支援的副档名:wasm
WebAssembly 是个新兴的技术,其对网页的发展具有相当的影响力,目前各大浏览器都已对其提供支援。如同 Node.js 一样,WebAssembly 将可增加网页语言的多样性,且不只限于能转译为 JavaScript 的语言。
C 及 Rust 等等的低阶语言都能被编译为 WebAssembly,而其作为二进制档案格式,可减少档案大小并提升执行速度。编译后的 WebAssembly 程式可拥有接近原生等级的效能,与 JavaScript 相比之下通常效能较佳。不久将来我们可能就会开始看到 JavaScript 的函式库使用 WebAssembly 来改写效能吃重的部分。
在 Parcel 中使用 WebAssembly 再简单不过了。若你已经有 .wasm
档案,依照平常的使用方式汇入即可,或者可参考下节中更加简便的方式。Parcel 支援同步及非同步这两种载入方式。
// 同步地汇入
import { add } from './add.wasm'
console.log(add(2, 3))
// 非同步地汇入
const { add } = await import('./add.wasm')
console.log(add(2, 3))
当同步地载入 .wasm
档案时,Parcel 会自动产生额外的程式码以便在执行 JavaScript bundle 之前先行载入档案,这意味着你的二进制档不会被当成字串而插入在 JavaScript 中,而是以独立档案的形式载入。如此一来你的程式仍可以同步的方式运作,Parcel 则会在前头替你处理相依套件的载入。
这些是所有被 Parcel 内部支援启用的 bundle 载入器,这些执行期模组 (runtime module) 知道如何非同步的载入特定档案格式。在先前的版本中,这些 JavaScript 及 CSS 的 bundle 载入器都是写死的,而在 Parcel 1.5.0 版中实现了全面的可插拔 (pluggable),因此现在可以在外挂中定义你自己的 bundle 载入器了,料将为未来的自订二进制格式带来许多有趣的功能,如 Glimmer 的二进制样板等,多麽令人期待!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论