‣ 让 Nodejs exec Go wasm 的方案,是要把 Go WASM 当作一个 exec command 去执行,这样相当于开了一个进程去执行命令,这不是 WASM 的初衷。
这次我还要把一个 WASM 封装成 NPM 包,既可以在 Nodejs 中运行,也可以在 Browser 中运行。甚至,不需要很多胶水代码以及 WASM 预备知识,就可以让使用者使用!
第一步,还是先了解一下 JS 怎么调用 Go 编译的 WASM。
不过,一般不使用 Go 去编译 WASM,因为编译出来的 WASM 太大了,是 TinyGo 编译的 10 倍!
TinyGo
编译 WASM一般,到这里就可以了。
你已经学会在怎么在 Browser 和 Nodejs 使用 TinyGo 编译的 WASM 文件。
但是,如果你在开发一个库,需要打包 WASM 作为 NPM,就需要给使用者一个良好的体验:
不能有太多胶水代码:为了最后一行的调用,却要写十几行的加载代码!
使用者只是想要使用 WASM 中的函数,不需要知道很多 WASM 的预备知识。甚至,他可以不知道这个库是使用 WASM 的!