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 *
答案 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);