diff --git a/packages/@vue/cli/lib/add.js b/packages/@vue/cli/lib/add.js index 251fd9d1ca..8482f7a907 100644 --- a/packages/@vue/cli/lib/add.js +++ b/packages/@vue/cli/lib/add.js @@ -1,11 +1,13 @@ const chalk = require('chalk') +const semver = require('semver') const invoke = require('./invoke') const PackageManager = require('./util/ProjectPackageManager') const { log, error, - resolvePluginId + resolvePluginId, + isOfficialPlugin } = require('@vue/cli-shared-utils') const confirmIfGitDirty = require('./util/confirmIfGitDirty') @@ -21,7 +23,13 @@ async function add (pluginName, options = {}, context = process.cwd()) { log() const pm = new PackageManager({ context }) - await pm.add(packageName) + + const cliVersion = require('../package.json').version + if (isOfficialPlugin(packageName) && semver.prerelease(cliVersion)) { + await pm.add(`${packageName}@^${cliVersion}`) + } else { + await pm.add(packageName) + } log(`${chalk.green('✔')} Successfully installed plugin: ${chalk.cyan(packageName)}`) log()