首页 > 解决方案 > 货物构建未在 wasm 项目上生成 pkg 目录

问题描述

如标题中所述,货物构建无法生成 pkg 目录。我正在关注一个教程,在该教程中我运行了cargo build --target wasm-unknown-unknown运行良好的命令,并且没有出现任何错误。然后在我的 index.js 文件中,我需要使用以下语句导入 wasm 文件import './pkg/rust_3d_demo':但是运行 cargo build 命令后没有生成 pkg 目录。Doug Milford 先生在 youtube 上发布的教程只有 3 天,所以这里没有版本问题,我的 rustc 和 rustup 和 cargo 都是最新的。有什么想法吗?非常感激。

这是我的 Cargo.toml 文件:

[package]
name = "rust-3d-demo"
version = "0.1.0"
authors = ["Steel"]
edition = "2018"

[lib]
crate-type = ["cdylib"]

[dependencies]
console_error_panic_hook = "=0.1.5"
js-sys = "0.3.19"
lazy_static = "1.3.0"
nalgebra = "0.18.0"
wasm-bindgen = "0.2.44"

[dependencies.web-sys]
version = "0.3.4"

features = [
'Document',
'Element',
'EventTarget',
'HtmlCanvasElement',
'MouseEvent',
'WebGlBuffer',
'WebGlProgram',
'WebGlRenderingContext',
'WebGlShader',
'WebGlUniformLocation',
'Window'
]

以及我的 package.json 文件中的 devDependencies 部分:

"devDependencies": {
"@wasm-tool/wasm-pack-plugin": "^1.1.0",
"html-webpack-plugin": "^3.2.0",
"text-encoding": "^0.7.0",
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10",
"webpack-dev-server": "^3.10.1"
}

其他可能有帮助的信息:

rustc --version=> 生锈 1.40.0 (73528e339 2019-12-16)

rustup --version=> 生锈 1.21.1

cargo --version=> 货物 1.40.0

标签: rustwebassembly

解决方案


wasm-build通过webpack.config.js这种方式使用:

  1. 导入wasm-pack-plugin配置文件 const WasmPackPlugin = require("@wasm-tool/wasm-pack-plugin");
  2. 在插件部分添加一个新实例: new WasmPackPlugin({ crateDirectory: path.resolve(__dirname, ".") }) 在此之后生成 pkg 目录:)

推荐阅读