手動設定
⚠️ 這不是開始 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 <ashley666ashley@gmail.com>"]
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 程式碼!
現在您的 crate 已在 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
順利!