{"record":{"id":"e15f9a31a7cc21ac","repo":"vuejs/vue-cli","slug":"require-vue-cli-service-range-but-was-loade-e15f9a","errorCode":null,"errorMessage":"Require @vue/cli-service \"${range}\", but was loaded with \"${this.cliServiceVersion}\".","messagePattern":"Require @vue/cli-service \"(.+?)\", but was loaded with \"(.+?)\"\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@vue/cli/lib/GeneratorAPI.js","lineNumber":159,"sourceCode":"    )\n\n    return servicePkg.version\n  }\n\n  assertCliServiceVersion (range) {\n    if (typeof range === 'number') {\n      if (!Number.isInteger(range)) {\n        throw new Error('Expected string or integer value.')\n      }\n      range = `^${range}.0.0-0`\n    }\n    if (typeof range !== 'string') {\n      throw new Error('Expected string or integer value.')\n    }\n\n    if (semver.satisfies(this.cliServiceVersion, range, { includePrerelease: true })) return\n\n    throw new Error(\n      `Require @vue/cli-service \"${range}\", but was loaded with \"${this.cliServiceVersion}\".`\n    )\n  }\n\n  /**\n   * Check if the project has a given plugin.\n   *\n   * @param {string} id - Plugin id, can omit the (@vue/|vue-|@scope/vue)-cli-plugin- prefix\n   * @param {string} version - Plugin version. Defaults to ''\n   * @return {boolean}\n   */\n  hasPlugin (id, versionRange) {\n    return this.generator.hasPlugin(id, versionRange)\n  }\n\n  /**\n   * Configure how config files are extracted.\n   *","sourceCodeStart":141,"sourceCodeEnd":177,"githubUrl":"https://github.com/vuejs/vue-cli/blob/7eb93c169c7520935252e2473387f923ef80d856/packages/@vue/cli/lib/GeneratorAPI.js#L141-L177","documentation":"Thrown by assertCliServiceVersion when the locally installed @vue/cli-service version does not satisfy the semver range required by the plugin/generator. It compares the resolved cli-service version (from the project's node_modules) against the range and throws on mismatch.","triggerScenarios":"A plugin generator calls assertCliServiceVersion('^5.0.0') but the project has @vue/cli-service 4.x installed. Or the project's cli-service is older than what the plugin requires.","commonSituations":"A plugin was updated to require a newer cli-service, but the project's local @vue/cli-service dependency hasn't been upgraded. Occurs during `vue invoke` or `vue upgrade` after updating plugins.","solutions":["Upgrade the project's @vue/cli-service: npm install @vue/cli-service@latest (or vue upgrade @vue/cli-service).","If you can't upgrade, downgrade the plugin to a version compatible with your current cli-service.","Check installed version: npm list @vue/cli-service and compare to the required range."],"exampleFix":"# before\nproject has @vue/cli-service@4.5.0\nplugin requires ^5.0.0\n# after\n$ npm install @vue/cli-service@^5.0.0","handlingStrategy":"validation","validationCode":"const semver = require('semver');\nconst servicePkg = require('@vue/cli-service/package.json');\nif (!semver.satisfies(servicePkg.version, requiredRange, { includePrerelease: true })) {\n  console.warn(`@vue/cli-service ${servicePkg.version} does not satisfy ${requiredRange}.`);\n}","typeGuard":null,"tryCatchPattern":"try {\n  generatorAPI.assertCliServiceVersion('^5.0.0');\n} catch (e) {\n  if (e.message.includes('Require @vue/cli-service')) {\n    console.error('cli-service version mismatch. Run: npm install @vue/cli-service@latest');\n    process.exit(1);\n  }\n  throw e;\n}","preventionTips":["Check installed cli-service version with `npm list @vue/cli-service`.","Upgrade @vue/cli-service when upgrading plugins that require newer versions.","Pin compatible version ranges in your project."],"tags":["version","cli-service","dependency","semver","plugin-api"],"backgroundTag":null,"analyzedSha":"7eb93c169c7520935252e2473387f923ef80d856","analyzedAt":"2026-08-13T10:13:37.803Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}