{"record":{"id":"ebb226a147c74b1c","repo":"quasarframework/quasar","slug":"electron-support-detected-already-aborting","errorCode":null,"errorMessage":"Electron support detected already. Aborting.","messagePattern":"Electron support detected already\\. Aborting\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"app-vite/lib/modes/electron/electron-installation.js","lineNumber":29,"sourceCode":"\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, 'electron')) {\n    const forceInstall = await ensureModePackageJsonAndWorkspace(\n      'electron',\n      ctx\n    )\n    await ensureModeDeps('electron', ctx, forceInstall)\n\n    if (silent !== true) {\n      warn('Electron support detected already. Aborting.')\n    }\n\n    return\n  }\n\n  const promptSession = await createPromptSession('Installing Electron Mode...')\n\n  const copyTask = promptSession.taskLog({ title: 'Creating /src-electron...' })\n\n  await copyModeWorkspace('electron', ctx)\n  fse.copySync(\n    appPaths.resolve.cli(`templates/electron/common`),\n    appPaths.electronDir\n  )\n\n  const hasTypescript = await cacheProxy.getModule('hasTypescript')\n  const format = hasTypescript ? 'ts' : 'js'\n  fse.copySync(","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/electron/electron-installation.js#L11-L47","documentation":"Warning emitted by `quasar mode add electron` when the Electron mode is already installed in the project. The addMode command detects the existing mode, optionally refreshes its dependencies (including a forced reinstall if requested), then aborts the installation instead of duplicating it. This is an intentional early return, not a crash.","triggerScenarios":"Running `quasar mode add electron` when isModeInstalled(appPaths, 'electron') returns true — i.e. src-electron already exists. Also triggered automatically by `quasar dev`/`quasar build` with electron targets when they internally invoke addMode on an already-configured project, unless silent is true.","commonSituations":"Re-running the add command after a previous successful install; a CI script or scaffolding template that unconditionally adds the electron mode; running `quasar dev -m electron` in a project that already has src-electron.","solutions":["No fix needed: the mode is already installed — just run `quasar dev -m electron` or `quasar build -m electron` directly.","If dependencies seem broken, re-run with the force option (e.g. delete node_modules/electron or use the force flag) so ensureModeDeps reinstalls them.","If src-electron exists but is broken/partial, delete it and run `quasar mode add electron` again for a clean scaffold."],"exampleFix":"// before (CI script)\nquasar mode add electron\nquasar dev -m electron\n// after\nquasar mode add electron || true\nquasar dev -m electron","handlingStrategy":"validation","validationCode":"import { existsSync } from 'node:fs'\nimport { join } from 'node:path'\nconst hasElectronMode = existsSync(join(process.cwd(), 'src-electron'))\nif (!hasElectronMode) {\n  await execa('quasar', ['mode', 'add', 'electron'])\n}\nawait execa('quasar', ['dev', '-m', 'electron'])","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check for src-electron existence before running `quasar mode add electron` in scripts/CI.","Make add commands idempotent (|| true) or conditional in automation.","Treat this warning as a signal to run dev/build directly instead of re-adding."],"tags":["electron","mode-installation","cli","already-installed"],"backgroundTag":"quasar-mode-already-installed","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}