{"record":{"id":"5dad910d300e78e0","repo":"quasarframework/quasar","slug":"the-file-defined-in-bex-manifest-content-scripts","errorCode":null,"errorMessage":"The file defined in bex manifest > content_scripts > js > \"${rawName}\" does NOT exist. Skipping.","messagePattern":"The file defined in bex manifest > content_scripts > js > \"(.+?)\" does NOT exist\\. Skipping\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"app-vite/lib/modes/bex/bex-utils.js","lineNumber":161,"sourceCode":"    }\n\n    const entry = getCompilationEntry(quasarConf, inputFile, scriptName)\n    if (!scriptNameSet.has(entry.name)) {\n      scriptNameSet.add(entry.name)\n      scriptList.push(entry)\n    }\n  })\n\n  bexManifest.content_scripts?.forEach(contentScript => {\n    contentScript.js?.forEach((rawName, index) => {\n      const scriptName = rawName.replace(scriptExtRE, '')\n      const inputFile = quasarConf.ctx.appPaths.resolve.bex(rawName)\n\n      contentScript.js[index] = scriptName + '.js'\n\n      if (!fse.existsSync(inputFile)) {\n        warn()\n        warn(\n          `The file defined in bex manifest > content_scripts > js > \"${rawName}\" does NOT exist. Skipping.`\n        )\n        warn()\n        return\n      }\n\n      const entry = getCompilationEntry(quasarConf, inputFile, scriptName)\n      if (!scriptNameSet.has(entry.name)) {\n        scriptNameSet.add(entry.name)\n        scriptList.push(entry)\n      }\n    })\n  })\n\n  quasarConf.bex.extraScripts.forEach(rawName => {\n    const inputFile = quasarConf.ctx.appPaths.resolve.bex(rawName)\n\n    if (!fse.existsSync(inputFile)) {","sourceCodeStart":143,"sourceCodeEnd":179,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/bex/bex-utils.js#L143-L179","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Correct the content_scripts js path in src-bex/manifest.json to the actual file.","Create the referenced file inside src-bex.","Delete the stale content-script entry if it is no longer needed.","Verify casing/extension (e.g. content.js vs Content.tsx compiled name)."],"exampleFix":"// before\n\"content_scripts\": [{ \"js\": [\"contentscript.js\"] }] // actual file: content-script.js\n// after\n\"content_scripts\": [{ \"js\": [\"content-script.js\"] }]","handlingStrategy":"validation","validationCode":"const fs = require('fs'), path = require('path')\nfor (const cs of require('./src-bex/manifest.json').all?.content_scripts || []) {\n  for (const f of cs.js || []) {\n    if (!fs.existsSync(path.join('src-bex', f))) throw new Error(`content script missing: src-bex/${f}`)\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Update content_scripts paths in the same commit as file renames.","Reference source files by their exact path inside src-bex, no globs.","Check casing carefully when developing on macOS/Windows and deploying on Linux."],"tags":["bex","manifest","missing-file","content-scripts"],"backgroundTag":"referenced-file-not-found","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}