{"record":{"id":"0eb25f042a779c4e","repo":"quasarframework/quasar","slug":"src-cordova-package-json-not-found-your-setup-se","errorCode":null,"errorMessage":"/src-cordova/package.json not found. Your setup seems broken. Please remove Cordova support and add it again.","messagePattern":"/src-cordova/package\\.json not found\\. Your setup seems broken\\. Please remove Cordova support and add it again\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"app-vite/lib/modes/cordova/cordova-installation.js","lineNumber":32,"sourceCode":"/**\n * @param {{\n *   ctx: import('../../../types/configuration/context').InternalQuasarContext,\n *   silent: boolean,\n *   target: 'android' | 'ios' | undefined,\n *   appId?: string\n * }} options\n */\nexport async function addMode({ ctx, silent, target, appId }) {\n  const {\n    appPaths,\n    pkg: { appPkg }\n  } = ctx\n\n  if (isModeInstalled(appPaths, 'cordova')) {\n    ensureWWW({ appPaths, forced: true })\n\n    if (!fse.existsSync(appPaths.resolve.cordova('package.json'))) {\n      warn(\n        '/src-cordova/package.json not found. Your setup seems broken. Please remove Cordova support and add it again.'\n      )\n      warn()\n      process.exit(1)\n    }\n\n    if (target) {\n      await ensureModeDeps('cordova', ctx)\n      await addPlatform(appPaths, target)\n    } else if (silent !== true) {\n      warn('Cordova support detected already. Aborting.')\n    }\n\n    return\n  }\n\n  const appName = appPkg.productName || appPkg.name || 'Quasar App'\n","sourceCodeStart":14,"sourceCodeEnd":50,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/lib/modes/cordova/cordova-installation.js#L14-L50","documentation":"When adding Cordova mode to a project where the mode is already installed, Quasar verifies src-cordova/package.json exists. If it doesn't, the scaffold is considered broken: this warning is printed, a blank line, and the process exits with code 1.","triggerScenarios":"addMode in cordova-installation.js, when isModeInstalled(appPaths,'cordova') is true but fse.existsSync(appPaths.resolve.cordova('package.json')) is false — i.e. a src-cordova directory exists without its package.json.","commonSituations":"A partially deleted src-cordova folder (package.json removed by hand, .gitignore mishap, or interrupted `quasar mode add cordova`); restoring the folder from VCS without package.json because it was gitignored.","solutions":["Delete the src-cordova directory completely and re-add support: quasar mode remove cordova (or rm -rf src-cordova) then quasar mode add cordova.","If you have valuable native customizations, instead recreate a minimal src-cordova/package.json (cordova devDependency + scripts) matching your installed cordova version before retrying.","Check git history/backup for the lost package.json and restore it to avoid re-adding platforms and plugins."],"exampleFix":"# before\nsrc-cordova/   (no package.json)\n# after\nrm -rf src-cordova\nquasar mode add cordova","handlingStrategy":"validation","validationCode":"const fs = require('fs');\nif (fs.existsSync('src-cordova') && !fs.existsSync('src-cordova/package.json')) {\n  // broken scaffold — remove and re-add before invoking quasar mode add cordova\n  fs.rmSync('src-cordova', { recursive: true, force: true });\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never delete files inside src-cordova selectively; remove the whole folder when resetting Cordova support.","Don't gitignore src-cordova/package.json — it defines the Cordova project and plugins.","Check for a complete src-cordova scaffold after interrupting a `quasar mode add cordova` run."],"tags":["cordova","broken-setup","package-json","process-exit"],"backgroundTag":"broken-cordova-setup","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}