@babel/plugin-proposal-import-wasm-source
將 import source
宣告轉換為 WebAssembly.Module
物件,假設 import source
用於匯入 WebAssembly 模組的來源。
此外掛套件套用的轉換取決於你的頂層 targets
,以偵測產生的程式碼是否應與 Node.js、瀏覽器或兩者相容。當目標為 Node.js 時,產生的程式碼也會根據你是否將模組編譯為 CommonJS 而有所不同。
注意
編譯模組至 AMD、SystemJS 或 UMD 時,無法使用此外掛程式。
範例
input.js
import source libMod from "./lib.wasm";
將轉換為
- 瀏覽器
- Node.js (ESM)
- Node.js (CommonJS)
output.js
const libMod = await WebAssembly.compileStreaming(fetch(import.meta.resolve("./lib.wasm")));
output.js
import { readFileSync as _readFileSync } from "fs";
const libMod = new WebAssembly.Module(_readFileSync(new URL(import.meta.resolve("./lib.wasm"))));
output.js
"use strict";
const libMod = new WebAssembly.Module(require("fs").readFileSync(require.resolve("./lib.wasm")));
安裝
- npm
- Yarn
- pnpm
npm install --save-dev @babel/plugin-proposal-import-wasm-source
yarn add --dev @babel/plugin-proposal-import-wasm-source
pnpm add --save-dev @babel/plugin-proposal-import-wasm-source
使用
使用設定檔(建議)
babel.config.json
{
"plugins": [
"@babel/plugin-proposal-import-wasm-source"
]
}
透過 CLI
Shell
babel --plugins=@babel/plugin-proposal-import-wasm-source script.js
透過 Node API
JavaScript
require("@babel/core").transformSync("code", {
plugins: [
"@babel/plugin-proposal-import-wasm-source"
],
});