如何使用本地工具从本地文件系统读取 WebAssembly 文件 JavaScript
How to read WebAssembly file it JavaScript from the local file system with native tools
我正在寻找一种方法来构建我的 JavaScript 测试并读取一个简单的二进制 WebAssembly 文件,即来自本地文件系统的 wasm,即不在浏览器应用程序中而不使用第三方工具(如节点)。到目前为止,我发现这可以通过节点 fs 对象来完成。但我不想加载这么大的工具只是为了读取一个文件。
即
我正在寻找替换这样的节点调用的方法
var file = fs.readFileSync('myTestFile.wasm');
var buffer = new Uint8Array(file).buffer;
在没有节点和浏览器的 JavaScript 中会是什么样子?
所有 JavaScript 引擎都有一个在命令行上运行的源代码的非浏览器版本。 JSC 有 jsc
、V8 有 d8
、SpiderMonkey js
和 ChakraCore ch
.
各个浏览器供应商都使用它们进行测试,我们有时不可避免地需要读取 ASCII 或二进制文件。不幸的是,这种功能并没有真正的标准,但我发现这对我的目的有用:
const readAsBinary = filename => {
if (typeof process === 'object' && typeof require === 'function') {
const binary = require('fs').readFileSync(file);
return !binary.buffer ? new Uint8Array(binary) : binary;
} else
return typeof readbuffer === 'function'
? new Uint8Array(readbuffer(file))
: read(file, 'binary');
};
const instance = new WebAssembly.Instance(new WebAssembly.Module(readAsBinary(filename)), {});
这 仅 在 node.js 或引擎的 shell 中工作,在浏览器中 不工作。
如果您对 .wasm 文件进行 base64 编码,那么您可以像这样将其直接包含在 JavaScript 中:
Module.wasmBinaryFile = "data:application/wasm;base64,AGFzbQEAAAAByQ/AAWACf38Bf2A...";
我正在寻找一种方法来构建我的 JavaScript 测试并读取一个简单的二进制 WebAssembly 文件,即来自本地文件系统的 wasm,即不在浏览器应用程序中而不使用第三方工具(如节点)。到目前为止,我发现这可以通过节点 fs 对象来完成。但我不想加载这么大的工具只是为了读取一个文件。 即
我正在寻找替换这样的节点调用的方法
var file = fs.readFileSync('myTestFile.wasm');
var buffer = new Uint8Array(file).buffer;
在没有节点和浏览器的 JavaScript 中会是什么样子?
所有 JavaScript 引擎都有一个在命令行上运行的源代码的非浏览器版本。 JSC 有 jsc
、V8 有 d8
、SpiderMonkey js
和 ChakraCore ch
.
各个浏览器供应商都使用它们进行测试,我们有时不可避免地需要读取 ASCII 或二进制文件。不幸的是,这种功能并没有真正的标准,但我发现这对我的目的有用:
const readAsBinary = filename => {
if (typeof process === 'object' && typeof require === 'function') {
const binary = require('fs').readFileSync(file);
return !binary.buffer ? new Uint8Array(binary) : binary;
} else
return typeof readbuffer === 'function'
? new Uint8Array(readbuffer(file))
: read(file, 'binary');
};
const instance = new WebAssembly.Instance(new WebAssembly.Module(readAsBinary(filename)), {});
这 仅 在 node.js 或引擎的 shell 中工作,在浏览器中 不工作。
如果您对 .wasm 文件进行 base64 编码,那么您可以像这样将其直接包含在 JavaScript 中:
Module.wasmBinaryFile = "data:application/wasm;base64,AGFzbQEAAAAByQ/AAWACf38Bf2A...";