# 使用 wasm-pack 這個工具由 Rust / Wasm Working Group 開發,是建置 WebAssembly 應用程式中,社群最活躍的開發工具。他可以幫忙打包程式碼進 `npm` 的模組中,同時也有一個相應的 [Webpack plugin](https://github.com/wasm-tool/wasm-pack-plugin) 可以配合使用,並輕鬆跟已經存在的 JavaScript 應用程式整合。詳情請參考[這裡](https://drager.github.io/wasm-pack/book/introduction.html)。 :::note 注意,使用 `wasm-pack` 時,`Cargo.toml` 的 crate-type 必須是 `cdylib`。 ::: ## Install ```bash cargo install wasm-pack ``` ## Build 這個指令會編譯你的程式碼,並將編譯好的 WebAssembly 與用於啟動專案的 JavaScript wrapper,在 .`/pkg` 的資料夾中製作成一個 bundle。 ```bash wasm-pack build ``` ## Bundle 有關更多 Rollup 的資訊,請參見這個[指南](https://rollupjs.org/guide/en/#quick-start)。 ```bash rollup ./main.js --format iife --file ./pkg/bundle.js ``` ## Serve 你可以使用任何你喜歡的伺服器服務。這裡我們只示範用用簡易的 python 伺服器服務,在 [http://\[::1\]:8000](http://[::1]:8000) 啟動我們的專案。 ```bash python -m http.server 8000 ``` ## 支援目標平台 - `wasm32-unknown-unknown`