0

我可以将相同的 WASM javascript 模块部署到 node-chakracore,就像我可以部署到 nodejs v8 一样吗?

4

2 回答 2

1

ChakraCore 从 v1.4 开始支持 WebAssembly,并且 node-chakracore 从 8.x 开始通过 JavaScript 支持它:

如果您使用 JavaScript 中的 WebAssembly 方法,则 Node-ChakraCore 支持 WASM。从这里使用 basic.wasm,以下代码与 Node-ChakraCore 一起使用:

const fs = require('fs'); const buf = fs.readFileSync('basic.wasm')

async function test() {
    try {
        const module = await WebAssembly.compile(buf);
        const inst = new WebAssembly.Instance(module, {test: {foo: function(a){console.log(`foo called: ${a}`); return 2;}}});
        console.log(inst.exports.a(1));
    } catch (reason) { 
        console.log(`Failed: ${reason}`)
    } }

test();

https://github.com/sass/node-sass/pull/1777#discussion_r127280773

于 2017-07-13T20:48:07.027 回答
0

或者,您可以使用node-wasm加载您的 wasm 文件,然后在您的 node js 应用程序中执行以下操作:

import loadWasm from 'node-wasm';

async function run() {
  const {rust_function} = await loadWasm('/local/path/to/wasm');
  const result = rust_function();
  console.log(result);
}

run();

同一个 repo 中有一个完整的例子。祝你好运!

于 2018-02-13T03:51:54.367 回答