手动设置
⚠️ 这不是开始 wasm-pack
项目的推荐方法!如果您不小心来到这里,请查看我们的 推荐项目启动。
步骤 1:创建一个新的 Rust 库项目
您可以使用此命令创建一个名为 my-lib
的新 Rust 项目。
cargo new --lib my-lib
--lib
标志指定该项目是一个库,这很重要,因为我们将从 JavaScript 调用此代码。
步骤 2:编辑您的 Cargo.toml
文件
添加 wasm-bindgen
依赖项
您需要在 Cargo.toml
的依赖项部分添加 wasm-bindgen
。wasm-bindgen
是一个工具,它促进 wasm 模块和 JavaScript 之间的互操作性。
⚠️ 如果您来自 JavaScript,您可能会注意到,当我们添加依赖项时,没有 ^
或 ~
符号 - 看起来我们正在锁定到 0.2
版本。但是,情况并非如此!在 Rust 中,^
是隐含的。
添加 crate-type
接下来,添加一个 [lib]
部分,其中包含一个名为 crate-type
的新字段,设置为 "cdylib"
。这指定库是一个与 C 兼容的动态库,这有助于 cargo
在针对 wasm32
时将正确的标志传递给 Rust 编译器。
完成这些更改后,您的 Cargo.toml
文件应如下所示
[package]
name = "hello-wasm"
version = "0.1.0"
authors = ["Ashley Williams <[email protected]>"]
description = "babby's first wasm package"
license = "MIT OR Apache-2.0"
repository = "https://github.com/ashleygwilliams/hello-wasm"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen="0.2"
步骤 3:编写一些 Rust 代码!
现在您的箱子已在 Cargo.toml
文件中正确配置,设置项目的最后一步是在 src/lib.rs
文件中添加一些 Rust 代码。
浏览器示例
我们提供的模板为您提供了一个快速“Hello, World”项目,用于编译成可以在浏览器中使用的 WebAssembly 库
# #![allow(unused_variables)] #fn main() { extern crate wasm_bindgen; use wasm_bindgen::prelude::*; #[wasm_bindgen] extern { fn alert(s: &str); } #[wasm_bindgen] pub fn greet() { alert("Hello, World!"); } #}
就是这样!我们将在 模板深入 中讨论此代码的作用,您现在已经为它做好了准备。祝您 wasm-pack
快乐!