diff --git a/packages/@vue/cli/__tests__/Upgrader.spec.js b/packages/@vue/cli/__tests__/Upgrader.spec.js index 88524138cc..7e3dcfd771 100644 --- a/packages/@vue/cli/__tests__/Upgrader.spec.js +++ b/packages/@vue/cli/__tests__/Upgrader.spec.js @@ -34,6 +34,9 @@ test('upgrade: plugin-babel v3.5', async () => { expect(updatedPkg.dependencies).toHaveProperty('core-js') expect(logs.log.some(([msg]) => msg.match('core-js has been upgraded'))).toBe(true) + + // should have updated the version range in package.json + expect(updatedPkg.devDependencies['@vue/cli-plugin-babel']).not.toMatch('3.5.3') }) test('upgrade: plugin-babel with core-js 2', async () => { diff --git a/packages/@vue/cli/lib/Upgrader.js b/packages/@vue/cli/lib/Upgrader.js index 3c63829966..63392da679 100644 --- a/packages/@vue/cli/lib/Upgrader.js +++ b/packages/@vue/cli/lib/Upgrader.js @@ -101,6 +101,8 @@ module.exports = class Upgrader { log(`Upgrading ${packageName} from ${installed} to ${targetVersion}`) await this.pm.upgrade(`${packageName}@^${targetVersion}`) + // the cached `pkg` field won't automatically update after running `this.pm.upgrade` + this.pkg[depEntry][packageName] = `^${targetVersion}` await this.runMigrator(packageName, { installed }) }