MDN编写锈蚀到WASM指南声明如下:
这将从node_modules文件夹导入我们的模块。这被认为不是一个最佳实践,但这是一个演示,所以我们将使用它目前。
它引用了以下代码片段:
const js = import("./node_modules/@yournpmusername/hello-wasm/hello_wasm.js");
导入hello-wasm模块的“最佳实践”是什么?
我确实尝试了我认为可以工作的东西,因为它是您导入其他已安装模块的方式,但它没有工作:
const js = require("hello-wasm");
这给了一个模块找不到错误。请注意,node_modules确实包括由npm放在那里的hello-wasm目录。
将"main": "hello_wasm.js"
添加到hello_wasm
包中的package.json
会导致以下错误:
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 *
发布于 2019-01-14 12:02:06
也许您无法导入,因为正确的包名是@yournpmusername/hello-wasm
而不是hello-wasm
。您可能需要查看package.json
文件。
我想,“最佳实践”将是大多数人在以同步方式导入外部依赖项时所做的相同实践,即编写import { foo, bar } from 'wasm-module-example'
,但是存在问题,这种行为将取决于您正在使用的绑定器。
Parcel
使导入wasm模块和webpack
变得容易,而webpack
是MDN指南中使用的绑定器,有一些注意事项,所以目前最好是异步导入而不是同步导入。
import('@yournpmusername/hello-wasm').then(wasm => wasm.some_function()).catch(console.error);
https://stackoverflow.com/questions/54186369
复制