首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将WASM npm模块与vite结合在一起?

如何将WASM npm模块与vite结合在一起?
EN

Stack Overflow用户
提问于 2022-06-11 21:13:35
回答 1查看 760关注 0票数 1

我正在使用vite运行一个svelte应用程序,并有一个用wasm-pack --target web构建的WASM包。如果我直接与vanilla JS一起使用这个包,我可以编写如下内容:

代码语言:javascript
复制
<script type="module">
    import init, { greet } from "./pkg/compiler.js";

    init().then(() => {
        greet("Hello");
    });
</script>

在HTML中,greet是我的wasm_bindgen函数之一,而且工作正常。

但是,我的目标是将wasm-pack生成的wasm-pack文件夹发布到npm,然后在vite中使用这个包,如下所示:

代码语言:javascript
复制
<script lang="ts">
    import init, { greet } from "@ocr-compiler/compiler";
    
    init().then(() => {
        greet("Hello");
    });
</script>

但是,这会引发一个错误:Unknown file extension ".wasm" for /home/drbracewell/code/ocr/packages/svelte-editor/node_modules/@ocr-compiler/compiler/compiler_bg.wasm,有人知道我如何解决这个问题吗?Vite文档提到它将自动处理.wasm文件,但是当它们包含在npm包中时,这种情况不会发生吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-22 15:24:05

最后使用vite-plugin-wasm-pack解决了这个问题,但是有几个人注意到:

  • 您需要使用--target web标志与wasm-pack捆绑。
  • 如果您的铁锈箱在本地存在,您应该能够通过路径,插件将正确捆绑它。
  • 如果您打算将您的包发布到或正在使用来自npm的WASM包,则需要将一个main属性添加到wasm-pack生成的package.json中--当前有一个pull请求打开,以确保它将被添加,而不管目标是什么,但同时,设置一个包脚本将其添加到JSON中非常简单。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72587871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档