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 的標頭部分發出對應的 import
或 require
陳述式。此旗標會導致省略這些 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。