WebAssembly是一种面向Web的二进制格式,不是一种编程语言,它是一种可移植、高性能、低级别的虚拟机。它是由W3C(万维网联盟)设计的一种新型的Web标准,旨在通过在Web浏览器中运行高性能的本机二进制代码,提供更快速、更安全的Web应用程序。
准备工作
安装Emscripten
Emscripten是一个用于将C/C 代码编译为Wasm字节码的工具链。我们需要安装它,以便我们可以将我们的Typescript代码转换为LLVM字节码。您可以在Emscripten的官方网站([emscripten.org/docs/gettin…]) 上找到安装说明。
Typescript
本文假设工程代码已有,假设文件中包含如下两个方法
function add(a: number, b: number): number {
return a b;
}
export function addWrapper(a: number, b: number): number {
return add(a, b);
}
编译
tsc --target es2015 --module commonjs index.ts
这将使用tsc
编译我们的Typescript代码,并将其输出为index.js
文件。
JavaScript --> 转为Wasm
需要使用Emscripten将我们的JavaScript代码转换为LLVM字节码
emcc index.js -s WASM=1 -s EXPORTED_FUNCTIONS="['_addWrapper']" -o index.wasm
用Emscripten编译我们的JavaScript代码,
- 输出为index.wasm文件
- -s WASM=1选项,以便我们可以将输出文件编译为Wasm字节码。
- -s EXPORTED_FUNCTIONS="['_addWrapper']":导出指定的函数addWrapper函数。