這是 wasm-pack未發佈文件,已發佈的文件可在 Rust 和 WebAssembly 主要文件網站 上找到。這裡記錄的功能可能在 wasm-pack 的已發佈版本中不可用。

nodejs

目前,wasm-pack 產生的 npm 模組需要您在您的 node 專案中使用 fetch polyfill。

如果有一個來自 wasm-pack build --target nodejs 的模組,您可能會遇到一些關於全域 HeadersRequestResponsefetch Web API 的錯誤。

常見錯誤

ReqwestError(reqwest::Error { kind: Builder, source: "JsValue(ReferenceError: Headers is not defined
ReqwestError(reqwest::Error { kind: Builder, source: "JsValue(ReferenceError: Request is not defined

    var ret = getObject(arg0) instanceof Response;
ReferenceError: Response is not defined

解決方法

匯入或宣告 fetch 和物件:Headers、Request、Response

// CommonJS
const fetch = require('node-fetch');

// ES Module
import fetch from 'node-fetch';

// @ts-ignore
global.fetch = fetch;
// @ts-ignore
global.Headers = fetch.Headers;
// @ts-ignore
global.Request = fetch.Request;
// @ts-ignore
global.Response = fetch.Response;