rust wasm怎樣實(shí)現(xiàn)自動(dòng)化構(gòu)建

小樊
81
2024-11-19 03:56:34

要在 Rust 中為 WebAssembly (WASM) 實(shí)現(xiàn)自動(dòng)化構(gòu)建,您可以使用 wasm-pack 工具。wasm-pack 是一個(gè)用于構(gòu)建和發(fā)布 Rust 生成的 WASM 文件的命令行工具。以下是設(shè)置和使用 wasm-pack 的步驟:

  1. 安裝 wasm-pack:

    在 macOS 上,可以使用 Homebrew 安裝:

    brew install wasm-pack
    

    在 Windows 上,可以從 wasm-pack 的 GitHub 發(fā)布頁(yè)面 下載安裝程序。

    在 Linux 上,可以使用 curlwgetwasm-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
    
  2. 創(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-bindgenwasm-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"
    
  3. 構(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.wasmpkg/my-wasm-project.js)。

  4. 在 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)目中。

0