quasarframework/quasar · warning

The file defined in bex manifest > content_scripts > js > "$

Error message

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

What it means

extractBexScripts maps each content_scripts[i].js entry to a compiled script. When the referenced source file does not exist under src-bex, it warns and skips that content script.

Source

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

    }

    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)

      contentScript.js[index] = scriptName + '.js'

      if (!fse.existsSync(inputFile)) {
        warn()
        warn(
          `The file defined in bex manifest > content_scripts > js > "${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)
      }
    })
  })

  quasarConf.bex.extraScripts.forEach(rawName => {
    const inputFile = quasarConf.ctx.appPaths.resolve.bex(rawName)

    if (!fse.existsSync(inputFile)) {

View on GitHub (pinned to 4841521b5f)

Solutions

  1. Correct the content_scripts js path in src-bex/manifest.json to the actual file.
  2. Create the referenced file inside src-bex.
  3. Delete the stale content-script entry if it is no longer needed.
  4. Verify casing/extension (e.g. content.js vs Content.tsx compiled name).

Example fix

// before
"content_scripts": [{ "js": ["contentscript.js"] }] // actual file: content-script.js
// after
"content_scripts": [{ "js": ["content-script.js"] }]
Defensive patterns

Strategy: validation

Validate before calling

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

Prevention

When it happens

Trigger: manifest content_scripts[].js contains a filename that does not resolve to an existing file in src-bex; fse.existsSync fails and the entry is skipped.

Common situations: Content script renamed/refactored without updating the manifest; file added to the wrong folder (must be inside src-bex); glob-like paths that the resolver doesn't expand; case mismatch on Linux.

Related errors


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