Skip to content

wasm support at background script. #1448

Open
@Trojanking123

Description

@Trojanking123

Describe the bug

i am trying to use photon(a wasm image pkg by rust) at my extsion. i got this error Module format "iife" does not support top-level await. Use the "es" or "system" output formats rather.
my wxt version 0.19.27
"@silvia-odwyer/photon": "^0.3.2",

i tried so many ways to solve this problem with helping from AI(cursor the editor), but they all failed.

so is there a way i can resovle this problem ?

here is my wxt config

import {defineConfig} from 'wxt';
import react from '@vitejs/plugin-react';
import wasm from "vite-plugin-wasm";
import topLevelAwait from "vite-plugin-top-level-await";

// See https://wxt.dev/api/config.html
export default defineConfig({
    manifest: {
        permissions: ["activeTab", "scripting", "sidePanel", "storage", "tabs",  "contextMenus", "downloads"],
        action: {},
        name: '__MSG_extName__',
        description: '__MSG_extDescription__',
        default_locale: "en",
        content_security_policy: {
            extension_pages: "script-src 'self' 'wasm-unsafe-eval' http://localhost:3000; object-src 'self';",
            sandbox: "script-src 'self' 'unsafe-inline' 'unsafe-eval' http://localhost:3000; sandbox allow-scripts allow-forms allow-popups allow-modals; child-src 'self';"
          },
    },
    vite: () => ({
        plugins: [react(), wasm(), topLevelAwait({
            // The export name of top-level await promise for each chunk module
            promiseExportName: "__tla",
            // The function to generate import names of top-level await promise in each chunk module
            promiseImportName: i => `__tla_${i}`
        })],
    }),
});

Reproduction

imgarc.zip

Steps to reproduce

run npm run dev

System Info

WXT 0.19.27                                                                                                                               15:41:06
✔ Started dev server @ http://localhost:3000                                                                                             15:41:08
ℹ Pre-rendering chrome-mv3 for development with Vite 6.0.8                                                                               15:41:08
x Build failed in 1.03s

 ERROR  Module format "iife" does not support top-level await. Use the "es" or "system" output formats rather.                            15:41:10
file: F:/selfcode/imgarc/node_modules/.pnpm/@[email protected]/node_modules/@silvia-odwyer/photon/photon_rs_bg.wasm

    file: F:/selfcode/imgarc/node_modules/.pnpm/@[email protected]/node_modules/@silvia-odwyer/photon/photon_rs_bg.wasm
    at getRollupError (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/parseAst.js:397:41)
    at error (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/parseAst.js:393:42)
    at Module.render (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:16916:20)
    at Chunk.renderModules (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:18668:41)
    at Chunk.render (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:18150:111)
    at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:19845:72
    at Array.map (<anonymous>)
    at renderChunks (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:19845:53)
    at Bundle.generate (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:20108:19)
    at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:22805:27
    at catchUnfinishedHookActions (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:22187:16)
    at buildEnvironment (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/vite/dist/node/chunks/dep-Beq30MX9.js:50941:16)
    at Object.build (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/builders/vite/index.mjs:268:22)
    at buildEntrypoints (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/build-entrypoints.mjs:15:18)
    at rebuild (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/rebuild.mjs:15:21)
    at internalBuild (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/internal-build.mjs:43:32)
    at buildAndOpenBrowser (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/create-server.mjs:119:28)
    at Object.start (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/create-server.mjs:75:7)
    at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/commands.mjs:32:5
    at CAC.<anonymous> (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/cli-utils.mjs:17:22)
    at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/index.mjs:11:1

✖ Command failed after 4.488 s                                                                                                           15:41:10

 ERROR  Failed to build background                                                                                                        15:41:10

    at buildEntrypoints (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/build-entrypoints.mjs:19:13)
    at rebuild (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/rebuild.mjs:15:21)
    at internalBuild (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/internal-build.mjs:43:32)
    at buildAndOpenBrowser (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/create-server.mjs:119:28)
    at Object.start (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/create-server.mjs:75:7)
    at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/commands.mjs:32:5
    at CAC.<anonymous> (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/cli-utils.mjs:17:22)
    at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/index.mjs:11:1

  [cause]: Module format "iife" does not support top-level await. Use the "es" or "system" output formats rather.
file: F:/selfcode/imgarc/node_modules/.pnpm/@[email protected]/node_modules/@silvia-odwyer/photon/photon_rs_bg.wasm

      file: F:/selfcode/imgarc/node_modules/.pnpm/@[email protected]/node_modules/@silvia-odwyer/photon/photon_rs_bg.wasm
      at getRollupError (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/parseAst.js:397:41)
      at error (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/parseAst.js:393:42)
      at Module.render (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:16916:20)
      at Chunk.renderModules (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:18668:41)
      at Chunk.render (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:18150:111)
      at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:19845:72
      at Array.map (<anonymous>)
      at renderChunks (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:19845:53)
      at Bundle.generate (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:20108:19)
      at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:22805:27
      at catchUnfinishedHookActions (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:22187:16)
      at buildEnvironment (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/vite/dist/node/chunks/dep-Beq30MX9.js:50941:16)
      at Object.build (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/builders/vite/index.mjs:268:22)
      at buildEntrypoints (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/build-entrypoints.mjs:15:18)
      at rebuild (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/rebuild.mjs:15:21)
      at internalBuild (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/utils/building/internal-build.mjs:43:32)
      at buildAndOpenBrowser (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/create-server.mjs:119:28)
      at Object.start (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/core/create-server.mjs:75:7)
      at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/commands.mjs:32:5
      at CAC.<anonymous> (/F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/cli-utils.mjs:17:22)
      at /F:/selfcode/imgarc/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected]/node_modules/wxt/dist/cli/index.mjs:11:1

 ELIFECYCLE  Command failed with exit code 1.

Used Package Manager

npm

Validations

Metadata

Metadata

Assignees

No one assigned

    Labels

    pending-triageSomeone (usually a maintainer) needs to look into this to see if it's a bug

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions