wasm-bindgen 命令列介面

wasm-bindgen 命令列工具提供許多選項,可調整產生的 JavaScript。最新的旗標組合可隨時透過 wasm-bindgen --help 列出。

安裝

cargo install -f wasm-bindgen-cli

用法

wasm-bindgen [options] ./target/wasm32-unknown-unknown/release/crate.wasm

選項

--out-dir DIR

要發出 JavaScript 綁定、TypeScript 定義、已處理的 .wasm 二進位檔等的目標目錄...

--target

此旗標指示 wasm-bindgen 應產生哪種輸出的風味。例如,它可以產生要在 Webpack 等捆綁器、原生網頁或 Node.js 中載入的程式碼。如需傳遞此旗標的完整選項列表,請參閱關於部署的章節

--no-modules-global VAR

當使用 --target no-modules 時,此旗標可以指示要將產生的綁定指定到的全域變數名稱。

如需更多資訊,請參閱關於部署的章節

--typescript

輸出為產生的 JavaScript 綁定的 TypeScript 宣告檔案。預設為啟用。

--no-typescript

預設情況下,會為產生的 JavaScript 綁定產生 *.d.ts TypeScript 宣告檔案,但此旗標將停用該檔案。

--omit-imports

module 屬性與 wasm-bindgen 巨集一起使用時,程式碼產生器將在產生的 javascript 的標頭部分發出對應的 importrequire 陳述式。此旗標會導致省略這些 import 陳述式。對於某些用例來說,這是必要的,例如產生要與 Electron 一起使用的 javascript(已停用節點整合),其中 import 會改為透過單獨的預載腳本處理。

--debug

在「除錯模式」下產生更多 JS 和 Wasm,以協助捕獲程式設計師錯誤,但此輸出不應交付到生產環境。

--no-demangle

在後處理 .wasm 二進位檔時,不要解構「names」自訂區段中的 Rust 符號。

--keep-lld-exports

在後處理 .wasm 二進位檔時,不要移除 Rust 的連結器 LLD 合成的匯出。

--keep-debug

在後處理 .wasm 二進位檔時,不要移除 DWARF 除錯資訊自訂區段。

--browser

當產生與捆綁器相容的程式碼時(請參閱關於部署的章節),這表示捆綁的程式碼始終要進入瀏覽器,因此可以省略一些 Node.js 檢查。

--omit-default-module-path

不要在產生的 JavaScript 中新增 WebAssembly 後備匯入。

--split-linked-modules

控制 wasm-bindgen 是否將連結的模組分割到各自的檔案中。建議啟用此功能,因為它可以延遲載入連結的模組並設定更嚴格的內容安全策略。

wasm-bindgen 使用 new URL('…', import.meta.url) 語法來解析分割檔案的連結。這與大多數捆綁器中斷,因為捆綁器不知道將連結的模組包含在其輸出中。這就是為什麼預設情況下停用此選項。Webpack 5 是一個例外,它對該語法有特殊的處理方式。

對於其他捆綁器,您需要採取額外的步驟才能使其運作,這很可能需要使用外掛程式。或者,您可以將語法保持原樣,而是手動設定捆綁器將 snippets/ 中的所有檔案複製到輸出目錄,保留它們相對於最終包含 JS shim 的捆綁檔案的路徑。

在 no-modules 目標上,如果在文件外(例如在 worker 內)使用 link_to!,則它將無法運作。這是因為如果沒有像 import.meta.url 這樣的參考點,就不可能計算出連結模組的 URL。