quasarframework/quasar · warning

The file defined in bex manifest > background > scripts > "$

Error message

The file defined in bex manifest > background > scripts > "${rawName}" does NOT exist. Skipping.

What it means

extractBexScripts iterates manifest background.scripts (MV2 style) and maps each entry to a compiled script. If the raw file cannot be found under src-bex, it warns and returns, skipping that script from the background bundle.

Source

Thrown at app-vite/lib/modes/bex/bex-utils.js:138

      warn()
    } else {
      const entry = getCompilationEntry(quasarConf, inputFile, scriptName)
      if (!scriptNameSet.has(entry.name)) {
        scriptNameSet.add(entry.name)
        scriptList.push(entry)
      }
    }
  }

  bexManifest.background?.scripts?.forEach((rawName, index) => {
    const scriptName = rawName.replace(scriptExtRE, '')
    const inputFile = quasarConf.ctx.appPaths.resolve.bex(rawName)

    bexManifest.background.scripts[index] = scriptName + '.js'

    if (!fse.existsSync(inputFile)) {
      warn()
      warn(
        `The file defined in bex manifest > background > scripts > "${rawName}" does NOT exist. Skipping.`
      )
      warn()
      return
    }

    const entry = getCompilationEntry(quasarConf, inputFile, scriptName)
    if (!scriptNameSet.has(entry.name)) {
      scriptNameSet.add(entry.name)
      scriptList.push(entry)
    }
  })

  bexManifest.content_scripts?.forEach(contentScript => {
    contentScript.js?.forEach((rawName, index) => {
      const scriptName = rawName.replace(scriptExtRE, '')
      const inputFile = quasarConf.ctx.appPaths.resolve.bex(rawName)

View on GitHub (pinned to 4841521b5f)

Solutions

  1. Fix the path of the missing script in manifest background.scripts[index].
  2. Add the missing file under src-bex.
  3. Remove the stale entry from background.scripts if the script is no longer used.
  4. Consider migrating to MV3 service_worker background if appropriate.

Example fix

// before
"background": { "scripts": ["helpers.js", "old-util.js"] } // old-util.js deleted
// after
"background": { "scripts": ["helpers.js"] }
Defensive patterns

Strategy: validation

Validate before calling

const fs = require('fs'), path = require('path')
for (const s of require('./src-bex/manifest.json').all?.background?.scripts || []) {
  if (!fs.existsSync(path.join('src-bex', s))) throw new Error(`background script missing: src-bex/${s}`)
}

Prevention

When it happens

Trigger: An entry of background.scripts in src-bex/manifest.json points to a non-existent file; fse.existsSync(inputFile) is false for quasarConf.ctx.appPaths.resolve.bex(rawName).

Common situations: Legacy MV2 manifests listing several background scripts where some were removed; copy-pasted manifest from another extension referencing its own files; moved scripts into subfolders without updating paths.

Related errors


AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30). Data as JSON: /api/errors/d08113df8720c335. Report an issue: GitHub.