From 5849b157351764ec218c5f5c96e1e9013e03f746 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 25 Jul 2019 16:00:03 +0800 Subject: [PATCH 1/2] fix: `vue add` should install prerelease versions for official plugins --- packages/@vue/cli/lib/add.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/@vue/cli/lib/add.js b/packages/@vue/cli/lib/add.js index 251fd9d1ca..2943889d61 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}@next`) + } else { + await pm.add(packageName) + } log(`${chalk.green('✔')} Successfully installed plugin: ${chalk.cyan(packageName)}`) log() From b63345a3fb16e48ab2b6c4a2bfa5c51dbaee0af7 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 25 Jul 2019 16:59:16 +0800 Subject: [PATCH 2/2] fix: use ^${cliVersion} instead of next tag imagine the case that we're rolling out v5 alpha while the user is still on v4 alpha/beta/rc --- packages/@vue/cli/lib/add.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vue/cli/lib/add.js b/packages/@vue/cli/lib/add.js index 2943889d61..8482f7a907 100644 --- a/packages/@vue/cli/lib/add.js +++ b/packages/@vue/cli/lib/add.js @@ -26,7 +26,7 @@ async function add (pluginName, options = {}, context = process.cwd()) { const cliVersion = require('../package.json').version if (isOfficialPlugin(packageName) && semver.prerelease(cliVersion)) { - await pm.add(`${packageName}@next`) + await pm.add(`${packageName}@^${cliVersion}`) } else { await pm.add(packageName) }