我尝试从https://github.com/sql-js/sql.js加载sql-wasm.wasm,这样它就不需要服务器。否则,尝试从HTML加载wasm会出现CORS错误。我将其转换为base64(~ 800 KB),如下所示
const SQLBASE64 = "AGFzbQEAAAABrQRHYAJ/fwF/YAF/AX....AAJ4BAEHwogQLA4AWUQ==";
(link到完整的base64字符串)WebAssembly.Instance
只适用于非常小的二进制文件。WebAssembly.instantiate()
和WebAssembly.instantiateStreaming()
都以错误的对象、格式或头等错误结束。
我该怎么做才合适呢?
2条答案
按热度按时间ijnw1ujt1#
你可以尝试使用这个question的答案(你的
const
的答案是):编辑:
我做了更多的调查,你需要
sql-wasm.js
文件来示例化sql-wasm.wasm
文件。你的wasm模块需要sql-wasm.js
给予的导入,但是它所需要的配置似乎只需要一个路径。这意味着,没有办法告诉它加载html文件中已经存在的二进制模块。我认为这是可以改变的,无论是一个pull request还是一个官方回购的问题。当然,我希望被更有知识的人证明是错误的。
gab6jxml2#
所以有两个问题。
sql-wasm.wasm v1.8.0
正确转换为base64。1.不需要直接调用
WebAssembly.instantiate
,而是从sql.js使用initSqlJs()
。然后像这样装上子弹
Base64 wasm gist https://gist.github.com/SMUsamaShah/358fba159cb41fe469fc61e7db444c0e