Skip to content

Commit 15da794

Browse files
authored
feat!: make Vue 3 the default version for vue create (vuejs#6917)
1 parent 4580397 commit 15da794

File tree

5 files changed

+26
-22
lines changed

5 files changed

+26
-22
lines changed

packages/@vue/cli-ui/tests/e2e/specs/g1-projects.js

+9
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,19 @@ describe('Vue project manager', () => {
3838
cy.get('[data-testid="use-config-files"] .bullet').click()
3939
cy.get('.next').click()
4040
})
41+
42+
// choose vue 2
43+
cy.get('.config').within(() => {
44+
cy.get('.vue-ui-select').eq(0).click()
45+
})
46+
cy.get('.vue-ui-select-button').eq(1).click()
47+
48+
// choose standard eslint config
4149
cy.get('.config').within(() => {
4250
cy.get('.vue-ui-select').eq(1).click()
4351
})
4452
cy.get('.vue-ui-select-button').eq(2).click()
53+
4554
cy.get('.config').within(() => {
4655
cy.get('.vue-ui-switch').click({ multiple: true })
4756
cy.get('.next').click()

packages/@vue/cli/__tests__/Creator.spec.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ test('default', async () => {
99
{
1010
message: 'pick a preset',
1111
choices: [
12+
// both names are `Default`, the vue version is indicated in the feature prompts, so later we'll test the result preset for the vue version
13+
'Default',
1214
'Default',
13-
'Default (Vue 3)',
1415
'Manually select'
1516
],
1617
choose: 0
@@ -21,7 +22,7 @@ test('default', async () => {
2122
choose: 0
2223
}
2324
]
24-
await assertPromptModule([], expectedPrompts, defaults.presets.default)
25+
await assertPromptModule([], expectedPrompts, defaults.presets['Default (Vue 3)'])
2526
})
2627

2728
test('manual + PromptModuleAPI', async () => {
@@ -107,7 +108,7 @@ test('manual + PromptModuleAPI', async () => {
107108
choices: [
108109
'test',
109110
'Default',
110-
'Default (Vue 3)',
111+
'Default',
111112
'Manually'
112113
],
113114
choose: 0

packages/@vue/cli/lib/Creator.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ module.exports = class Creator extends EventEmitter {
7777
preset = await this.resolvePreset(cliOptions.preset, cliOptions.clone)
7878
} else if (cliOptions.default) {
7979
// vue create foo --default
80-
preset = defaults.presets.default
80+
preset = defaults.presets['Default (Vue 3)']
8181
} else if (cliOptions.inlinePreset) {
8282
// vue create foo --inlinePreset {...}
8383
try {
@@ -329,6 +329,8 @@ module.exports = class Creator extends EventEmitter {
329329

330330
if (name in savedPresets) {
331331
preset = savedPresets[name]
332+
} else if (name === 'default') {
333+
preset = savedPresets['Default (Vue 3)']
332334
} else if (name.endsWith('.json') || /^\./.test(name) || path.isAbsolute(name)) {
333335
preset = await loadLocalPreset(path.resolve(name))
334336
} else if (name.includes('/')) {
@@ -399,10 +401,10 @@ module.exports = class Creator extends EventEmitter {
399401
const presets = this.getPresets()
400402
const presetChoices = Object.entries(presets).map(([name, preset]) => {
401403
let displayName = name
402-
if (name === 'default') {
404+
// Vue version will be showed as features anyway,
405+
// so we shouldn't display it twice.
406+
if (name === 'Default (Vue 2)' || name === 'Default (Vue 3)') {
403407
displayName = 'Default'
404-
} else if (name === '__default_vue_3__') {
405-
displayName = 'Default (Vue 3)'
406408
}
407409

408410
return {

packages/@vue/cli/lib/options.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ exports.defaults = {
8080
packageManager: undefined,
8181
useTaobaoRegistry: undefined,
8282
presets: {
83-
'default': Object.assign({ vueVersion: '2' }, exports.defaultPreset),
84-
'__default_vue_3__': Object.assign({ vueVersion: '3' }, exports.defaultPreset)
83+
'Default (Vue 3)': Object.assign({ vueVersion: '3' }, exports.defaultPreset),
84+
'Default (Vue 2)': Object.assign({ vueVersion: '2' }, exports.defaultPreset)
8585
}
8686
}
8787

packages/@vue/cli/lib/promptModules/vueVersion.js

+5-13
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,19 @@
11
module.exports = cli => {
2-
cli.injectFeature({
3-
name: 'Choose Vue version',
4-
value: 'vueVersion',
5-
description: 'Choose a version of Vue.js that you want to start the project with',
6-
checked: true
7-
})
8-
92
cli.injectPrompt({
103
name: 'vueVersion',
11-
when: answers => answers.features.includes('vueVersion'),
124
message: 'Choose a version of Vue.js that you want to start the project with',
135
type: 'list',
146
choices: [
15-
{
16-
name: '2.x',
17-
value: '2'
18-
},
197
{
208
name: '3.x',
219
value: '3'
10+
},
11+
{
12+
name: '2.x',
13+
value: '2'
2214
}
2315
],
24-
default: '2'
16+
default: '3'
2517
})
2618

2719
cli.onPromptComplete((answers, options) => {

0 commit comments

Comments
 (0)