{"record":{"id":"c9f740f8fe218f55","repo":"vuejs/vue-cli","slug":"at-least-one-dependency-can-t-be-found-please-ins","errorCode":null,"errorMessage":"At least one dependency can't be found. Please install the dependencies before trying to upgrade","messagePattern":"At least one dependency can't be found\\. Please install the dependencies before trying to upgrade","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@vue/cli/lib/Upgrader.js","lineNumber":160,"sourceCode":"    }\n  }\n\n  async getUpgradable (includeNext) {\n    const upgradable = []\n\n    // get current deps\n    // filter @vue/cli-service, @vue/cli-plugin-* & vue-cli-plugin-*\n    for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies']) {\n      for (const [name, range] of Object.entries(this.pkg[depType] || {})) {\n        if (name !== '@vue/cli-service' && !isPlugin(name)) {\n          continue\n        }\n\n        const installed = await this.pm.getInstalledVersion(name)\n        const wanted = await this.pm.getRemoteVersion(name, range)\n\n        if (!installed) {\n          throw new Error(`At least one dependency can't be found. Please install the dependencies before trying to upgrade`)\n        }\n\n        let latest = await this.pm.getRemoteVersion(name)\n        if (includeNext) {\n          const next = await this.pm.getRemoteVersion(name, 'next')\n          if (next) {\n            latest = semver.gte(latest, next) ? latest : next\n          }\n        }\n\n        if (semver.lt(installed, latest)) {\n          // always list @vue/cli-service as the first one\n          // as it's depended by all other plugins\n          if (name === '@vue/cli-service') {\n            upgradable.unshift({ name, installed, wanted, latest })\n          } else {\n            upgradable.push({ name, installed, wanted, latest })\n          }","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/vuejs/vue-cli/blob/7eb93c169c7520935252e2473387f923ef80d856/packages/@vue/cli/lib/Upgrader.js#L142-L178","documentation":"Thrown during a full upgrade (`vue upgrade` without a specific plugin) when at least one @vue/cli-service or cli-plugin dependency listed in package.json is not installed in node_modules. The upgrader iterates all Vue CLI-related dependencies and checks each one's installed version; finding any uninstalled dependency aborts the entire upgrade.","triggerScenarios":"Running `vue upgrade` (upgrade all) when one or more Vue CLI plugins listed in package.json are missing from node_modules. getInstalledVersion returns falsy for at least one dependency.","commonSituations":"After a partial npm install failure, after deleting node_modules but not reinstalling, or when a plugin was added to package.json manually without running install. CI pipelines that skip install steps.","solutions":["Run npm install (or yarn/pnpm install) to install all dependencies before upgrading.","Run `npm list --depth=0` to verify all @vue/cli-plugin-* packages are installed.","If a specific plugin can't be installed, remove it from package.json before upgrading, or fix the install error first."],"exampleFix":"# before\n$ vue upgrade  # some plugins not in node_modules\n# after\n$ npm install\n$ npm list --depth=0 | grep cli-plugin\n$ vue upgrade","handlingStrategy":"validation","validationCode":"const pkg = require('./package.json');\nconst { existsSync } = require('fs');\nconst depTypes = ['dependencies', 'devDependencies', 'optionalDependencies'];\nconst missing = [];\nfor (const dt of depTypes) {\n  for (const name of Object.keys(pkg[dt] || {})) {\n    if (name === '@vue/cli-service' || name.startsWith('vue-cli-plugin-') || name.startsWith('@vue/cli-plugin-')) {\n      if (!existsSync(`node_modules/${name}/package.json`)) missing.push(name);\n    }\n  }\n}\nif (missing.length) console.error('Missing from node_modules:', missing.join(', '));","typeGuard":null,"tryCatchPattern":"try {\n  await upgrader.upgradeAll();\n} catch (e) {\n  if (e.message.includes(\"At least one dependency can't be found\")) {\n    console.error('Run npm install before upgrading.');\n    process.exit(1);\n  }\n  throw e;\n}","preventionTips":["Run `npm install` to ensure all dependencies are present before `vue upgrade`.","Check for partial install failures with `npm ls`.","In CI, cache or restore node_modules fully before running upgrades."],"tags":["upgrade","dependency","node-modules","environment","batch"],"backgroundTag":null,"analyzedSha":"7eb93c169c7520935252e2473387f923ef80d856","analyzedAt":"2026-08-13T10:13:37.803Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}