要在 Rust 中為 WebAssembly (WASM) 實(shí)現(xiàn)自動(dòng)化構(gòu)建,您可以使用 wasm-pack
工具。wasm-pack
是一個(gè)用于構(gòu)建和發(fā)布 Rust 生成的 WASM 文件的命令行工具。以下是設(shè)置和使用 wasm-pack
的步驟:
安裝 wasm-pack
:
在 macOS 上,可以使用 Homebrew 安裝:
brew install wasm-pack
在 Windows 上,可以從 wasm-pack 的 GitHub 發(fā)布頁(yè)面 下載安裝程序。
在 Linux 上,可以使用 curl
或 wget
從 wasm-pack 的 GitHub 發(fā)布頁(yè)面 下載安裝程序,然后運(yùn)行安裝命令。例如,在 Debian 或 Ubuntu 系統(tǒng)上:
curl -fsSL https://github.com/rustwasm/wasm-pack/releases/download/0.3.16/wasm-pack_0.3.16_amd64.deb -o wasm-pack_0.3.16_amd64.deb
sudo dpkg -i wasm-pack_0.3.16_amd64.deb
創(chuàng)建一個(gè)新的 Rust 項(xiàng)目(如果您還沒(méi)有一個(gè)):
使用 Cargo 創(chuàng)建一個(gè)新的 Rust 二進(jìn)制項(xiàng)目:
cargo new --lib my-wasm-project
cd my-wasm-project
在 Cargo.toml
文件中,添加 wasm-bindgen
和 wasm-pack
作為依賴項(xiàng):
[package]
name = "my-wasm-project"
version = "0.1.0"
authors = ["Your Name <your.email@example.com>"]
description = "A simple example of a Rust library for WebAssembly"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.2"
構(gòu)建 WASM 文件:
在項(xiàng)目目錄中,運(yùn)行以下命令以使用 wasm-pack
構(gòu)建您的 WASM 項(xiàng)目:
wasm-pack build --target web
這將在 pkg/
目錄下生成兩個(gè)文件:一個(gè)是編譯后的 WASM 文件(my-wasm-project.wasm
),另一個(gè)是包含 WebAssembly 二進(jìn)制文件和 JavaScript 綁定的 JS 文件(pkg/my-wasm-project_bg.wasm
和 pkg/my-wasm-project.js
)。
在 Web 項(xiàng)目中使用生成的 WASM 文件:
將生成的 pkg/
目錄中的文件復(fù)制到您的 Web 項(xiàng)目中。然后,在 HTML 文件中,您可以通過(guò)以下方式引用 JS 文件:
<script type="module">
import init, { my_function } from './pkg/my-wasm-project.js';
async function run() {
await init();
my_function();
}
run();
</script>
確保在支持 WebAssembly 的現(xiàn)代瀏覽器中打開(kāi) HTML 文件。
通過(guò)以上步驟,您可以使用 wasm-pack
自動(dòng)化構(gòu)建 Rust 項(xiàng)目的 WASM 版本,并將其集成到 Web 項(xiàng)目中。