如何要求使用Node.js模块?

时间:2019-01-14 17:24:29

标签: node.js npm webassembly

MDN guide on compiling Rust to WASM发表以下声明:

  

这将从node_modules文件夹中导入我们的模块。这不是最佳做法,但这是一个演示,因此我们现在就使用它。

参考以下代码段:

const js = import("./node_modules/@yournpmusername/hello-wasm/hello_wasm.js");

导入 hello-wasm 模块的“最佳实践”是什么?


我确实尝试了我认为可行的方法,因为这是您导入其他已安装模块的方式,但是没有用:

const js = require("hello-wasm");

这给模块未找到错误。请注意, node_modules 确实包含了 hello-wasm 目录,该目录位于npm。


"main": "hello_wasm.js"包中将package.json添加到hello_wasm会导致以下错误:

A JavaScript error occurred in the main process
Uncaught Exception:
/home/vinnie/electron-wasm/node_modules/hello-wasm/hello_wasm.js:2
import * as wasm from './hello_wasm_bg';
       ^

SyntaxError: Unexpected token *

1 个答案:

答案 0 :(得分:0)

也许您不能导入,因为正确的软件包名称是@yournpmusername/hello-wasm而不是hello-wasm。您可能要看一下package.json文件。

我想“最佳实践”将与大多数人以同步方式导入外部依赖项(即编写import { foo, bar } from 'wasm-module-example')相同,但存在一个问题,该行为将取决于您正在使用的捆绑器。

Parcel使import wasm modules变得容易,而MDN指南中使用的捆绑器webpack有一些caveats,因此目前最好异步导入而不是同步。

import('@yournpmusername/hello-wasm').then(wasm => wasm.some_function()).catch(console.error);