close
  • 简体中文
  • lib.wasm

    • 类型:
    type Wasm = {
      mode?: 'compile' | 'preserve';
    };
    • 默认值: undefined

    配置 Rslib 如何处理遵循 WebAssembly ESM Integration 提案语法使用的 .wasm 模块。

    详见 WebAssembly

    wasm.mode

    • 类型: 'compile' | 'preserve'
    • 默认值:bundletrue 时默认为 'compile',为 false 时默认为 'preserve'

    控制 .wasm 模块的产物形态。

    • 'compile':Rspack 会解析 .wasm 模块,并生成 JavaScript 胶水代码与运行时加载逻辑。适用于产物被 Node.js、浏览器等运行时直接消费的场景。
    • 'preserve':Rslib 会在产物 JavaScript 中保留 .wasm 的 import 语句,并将二进制文件原样输出。此模式要求 bundlefalse,适用于产物再由其他构建工具消费,或运行时原生支持 WebAssembly ESM Integration 的场景。

    在 preserve 模式下,.wasm 文件会保持源码相对路径与原文件名。output.distPath.wasmoutput.filenameHash 不会影响 preserve 模式下的 .wasm 文件。

    Rslib 会更新 JavaScript 中的 import,使其继续指向输出后的 .wasm 文件,但不会改写 WebAssembly 二进制内部保存的 import。如果 .wasm 文件会反向导入 JavaScript,请保持该 JavaScript 文件的相对输出路径和文件名不变。

    rslib.config.ts
    export default {
      lib: [
        {
          bundle: false,
          format: 'esm',
          wasm: {
            mode: 'preserve',
          },
        },
      ],
    };
    Note

    仅当 format'esm'(默认值)时才能配置 wasm。此外,使用 wasm.mode: 'preserve' 时,bundle 必须为 false。不支持的配置组合会导致构建报错。