{"record":{"id":"b7b07bf795578682","repo":"quasarframework/quasar","slug":"bex-support-detected-already-aborting","errorCode":null,"errorMessage":"BEX support detected already. Aborting.","messagePattern":"BEX support detected already\\. Aborting\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"app-vite/lib/modes/bex/bex-installation.js","lineNumber":25,"sourceCode":"  ensureModePackageJsonAndWorkspace,\n  isModeInstalled\n} from '../modes-utils.js'\n\n/**\n * @param {{\n *   ctx: import('../../../types/configuration/context').InternalQuasarContext,\n *   silent: boolean\n * }} options\n */\nexport async function addMode({ ctx, silent }) {\n  const { appPaths, cacheProxy } = ctx\n\n  if (isModeInstalled(appPaths, 'bex')) {\n    const forceInstall = await ensureModePackageJsonAndWorkspace('bex', ctx)\n    await ensureModeDeps('bex', ctx, forceInstall)\n\n    if (silent !== true) {\n      warn('BEX support detected already. Aborting.')\n    }\n\n    return\n  }\n\n  const promptSession = await createPromptSession('Installing BEX Mode...')\n\n  const copyTask = promptSession.taskLog({ title: 'Creating /src-bex...' })\n\n  await copyModeWorkspace('bex', ctx)\n  fse.copySync(appPaths.resolve.cli('templates/bex/common'), appPaths.bexDir)\n\n  const hasTypescript = await cacheProxy.getModule('hasTypescript')\n  const format = hasTypescript ? 'ts' : 'js'\n  fse.copySync(appPaths.resolve.cli(`templates/bex/${format}`), appPaths.bexDir)\n\n  copyTask.success('Created /src-bex')\n  await ensureModeDeps('bex', ctx, true)","sourceCodeStart":7,"sourceCodeEnd":43,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/bex/bex-installation.js#L7-L43","documentation":"addMode checks isModeInstalled(appPaths, 'bex') before installing BEX mode. If a src-bex directory (the mode's marker) already exists, the install is aborted; unless silent:true, it warns 'BEX support detected already. Aborting.' and only ensures the mode's package.json/deps are in place.","triggerScenarios":"Running `quasar mode add bex` (or an install flow calling addMode) when src-bex/ is already present in the project; silent !== true makes the warning visible.","commonSituations":"Re-running the add command after a previous successful install; CI script that unconditionally runs `quasar mode add bex`; manual creation of src-bex folder.","solutions":["Nothing to fix: BEX mode is already installed; remove `quasar mode add bex` from the script or guard it.","If you intentionally want a fresh scaffold, delete the src-bex directory (back up custom code first) and re-run `quasar mode add bex`.","Pass silent:true when invoking addMode programmatically to suppress the warning."],"exampleFix":"// before (CI script)\nquasar mode add bex\nquasar build -m bex\n// after\n[ -d src-bex ] || quasar mode add bex\nquasar build -m bex","handlingStrategy":"validation","validationCode":"const fs = require('fs')\nif (!fs.existsSync('src-bex')) {\n  require('child_process').execSync('npx quasar mode add bex', { stdio: 'inherit' })\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Guard `quasar mode add bex` behind an existence check on src-bex in CI scripts.","Treat the warning as informational — the CLI ensures deps automatically.","Back up src-bex customizations before deleting it to force a re-scaffold."],"tags":["bex","mode-installation","idempotency"],"backgroundTag":"mode-already-installed","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}