From 13bf3df530849c1518d2435d31cf28542d6cc8cd Mon Sep 17 00:00:00 2001 From: test Date: Wed, 11 Apr 2018 14:49:36 -0500 Subject: [PATCH 1/3] feat(git): allow users to specify custom commit messages. also fixed some var name typos (#1086) --- .../@vue/cli-test-utils/assertPromptModule.js | 4 ++-- packages/@vue/cli/bin/vue.js | 1 + packages/@vue/cli/lib/Creator.js | 18 +++++++++++++++++- .../lib/promptModules/__tests__/babel.spec.js | 4 ++-- .../__tests__/cssPreprocessors.spec.js | 2 +- .../lib/promptModules/__tests__/e2e.spec.js | 4 ++-- .../lib/promptModules/__tests__/linter.spec.js | 8 ++++---- .../lib/promptModules/__tests__/pwa.spec.js | 2 +- .../lib/promptModules/__tests__/router.spec.js | 2 +- .../promptModules/__tests__/typescript.spec.js | 4 ++-- .../lib/promptModules/__tests__/unit.spec.js | 4 ++-- .../lib/promptModules/__tests__/vuex.spec.js | 2 +- 12 files changed, 36 insertions(+), 19 deletions(-) diff --git a/packages/@vue/cli-test-utils/assertPromptModule.js b/packages/@vue/cli-test-utils/assertPromptModule.js index 02e9758069..798a3feba8 100644 --- a/packages/@vue/cli-test-utils/assertPromptModule.js +++ b/packages/@vue/cli-test-utils/assertPromptModule.js @@ -11,7 +11,7 @@ module.exports = async function assertPromptModule ( opts = {} ) { // auto fill non-module prompts - if (opts.plguinsOnly) { + if (opts.pluginsOnly) { expectedPrompts.unshift( { message: 'Please pick a preset', @@ -40,7 +40,7 @@ module.exports = async function assertPromptModule ( const creator = new Creator('test', '/', [].concat(module)) const preset = await creator.promptAndResolvePreset() - if (opts.plguinsOnly) { + if (opts.pluginsOnly) { delete preset.useConfigFiles } expect(preset).toEqual(expectedOptions) diff --git a/packages/@vue/cli/bin/vue.js b/packages/@vue/cli/bin/vue.js index 75e4645e2c..af1ff3c539 100755 --- a/packages/@vue/cli/bin/vue.js +++ b/packages/@vue/cli/bin/vue.js @@ -39,6 +39,7 @@ program .option('-p, --preset ', 'Skip prompts and use saved or remote preset') .option('-d, --default', 'Skip prompts and use default preset') .option('-i, --inlinePreset ', 'Skip prompts and use inline JSON string as preset') + .option('-g, --initialCommit ', 'Skip prompt and provide initial commit message (when git is available)') .option('-m, --packageManager ', 'Use specified npm client when installing dependencies') .option('-r, --registry ', 'Use specified npm registry when installing dependencies (only for npm)') .option('-f, --force', 'Overwrite target directory if it exists') diff --git a/packages/@vue/cli/lib/Creator.js b/packages/@vue/cli/lib/Creator.js index 30afada533..2183f1f7e5 100644 --- a/packages/@vue/cli/lib/Creator.js +++ b/packages/@vue/cli/lib/Creator.js @@ -79,6 +79,22 @@ module.exports = class Creator { // clone before mutating preset = cloneDeep(preset) + + let initialCommit + if (cliOptions.initialCommit) { + initialCommit = cliOptions.initialCommit + } else { + // clear the console and ask for the initial commit message #1086 + await clearConsole(true) + initialCommit = (await inquirer.prompt([{ + name: 'commitMessage', + when: hasGit, + type: 'input', + message: 'Initial Git commit message:', + default: 'init' + }])).commitMessage + } + // inject core service preset.plugins['@vue/cli-service'] = Object.assign({ projectName: name @@ -164,7 +180,7 @@ module.exports = class Creator { await run('git', ['config', 'user.name', 'test']) await run('git', ['config', 'user.email', 'test@test.com']) } - await run(`git commit -m init`) + await run('git', ['commit', '-m', initialCommit]) } // log instructions diff --git a/packages/@vue/cli/lib/promptModules/__tests__/babel.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/babel.spec.js index ac5fcd933c..e555b67584 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/babel.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/babel.spec.js @@ -23,7 +23,7 @@ test('should pass', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) @@ -49,6 +49,6 @@ test('should not include the plugin if ts is also present', async () => { [mockTSModule, moduleToTest], expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/cssPreprocessors.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/cssPreprocessors.spec.js index 360d00acc3..b33b9affaf 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/cssPreprocessors.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/cssPreprocessors.spec.js @@ -28,6 +28,6 @@ test('CSS pre-processor ', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js index bd3de0a682..52f25394b1 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/e2e.spec.js @@ -29,7 +29,7 @@ test('cypress', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) @@ -57,6 +57,6 @@ test('nightwatch', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/linter.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/linter.spec.js index a91ca45ab1..28756d2739 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/linter.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/linter.spec.js @@ -37,7 +37,7 @@ test('base', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) @@ -69,7 +69,7 @@ test('airbnb', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) @@ -101,7 +101,7 @@ test('standard', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) @@ -133,6 +133,6 @@ test('prettier', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/pwa.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/pwa.spec.js index ed25df5cc4..c0bcd07d2b 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/pwa.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/pwa.spec.js @@ -24,6 +24,6 @@ test('pwa', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/router.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/router.spec.js index d4665d180b..7c406c861c 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/router.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/router.spec.js @@ -23,6 +23,6 @@ test('router', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/typescript.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/typescript.spec.js index 9d4e7bc2ed..6dfa699833 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/typescript.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/typescript.spec.js @@ -48,7 +48,7 @@ test('with TSLint', async () => { [moduleToTest, linterModule], expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) @@ -96,6 +96,6 @@ test('with ESLint', async () => { [moduleToTest, linterModule], expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/unit.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/unit.spec.js index 3fe62e9f63..2be4db3ba3 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/unit.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/unit.spec.js @@ -29,7 +29,7 @@ test('mocha', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) @@ -57,6 +57,6 @@ test('jest', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) diff --git a/packages/@vue/cli/lib/promptModules/__tests__/vuex.spec.js b/packages/@vue/cli/lib/promptModules/__tests__/vuex.spec.js index 6a90a1d3f6..a24227baf1 100644 --- a/packages/@vue/cli/lib/promptModules/__tests__/vuex.spec.js +++ b/packages/@vue/cli/lib/promptModules/__tests__/vuex.spec.js @@ -23,6 +23,6 @@ test('vuex', async () => { moduleToTest, expectedPrompts, expectedOptions, - { plguinsOnly: true } + { pluginsOnly: true } ) }) From c415f1973993be179ee45a5cd774c60eb088d2d7 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 26 Apr 2018 15:24:44 -0400 Subject: [PATCH 2/3] Update vue.js --- packages/@vue/cli/bin/vue.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vue/cli/bin/vue.js b/packages/@vue/cli/bin/vue.js index af1ff3c539..2e3d0f831a 100755 --- a/packages/@vue/cli/bin/vue.js +++ b/packages/@vue/cli/bin/vue.js @@ -39,7 +39,7 @@ program .option('-p, --preset ', 'Skip prompts and use saved or remote preset') .option('-d, --default', 'Skip prompts and use default preset') .option('-i, --inlinePreset ', 'Skip prompts and use inline JSON string as preset') - .option('-g, --initialCommit ', 'Skip prompt and provide initial commit message (when git is available)') + .option('-g, --initialCommit ', 'Specify initial commit message (when git is available)') .option('-m, --packageManager ', 'Use specified npm client when installing dependencies') .option('-r, --registry ', 'Use specified npm registry when installing dependencies (only for npm)') .option('-f, --force', 'Overwrite target directory if it exists') From 58485bc9c851e97fe6b898a0d7e82b68613f15c0 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 26 Apr 2018 15:26:06 -0400 Subject: [PATCH 3/3] Update Creator.js --- packages/@vue/cli/lib/Creator.js | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/packages/@vue/cli/lib/Creator.js b/packages/@vue/cli/lib/Creator.js index 2183f1f7e5..92a245ff7a 100644 --- a/packages/@vue/cli/lib/Creator.js +++ b/packages/@vue/cli/lib/Creator.js @@ -79,22 +79,6 @@ module.exports = class Creator { // clone before mutating preset = cloneDeep(preset) - - let initialCommit - if (cliOptions.initialCommit) { - initialCommit = cliOptions.initialCommit - } else { - // clear the console and ask for the initial commit message #1086 - await clearConsole(true) - initialCommit = (await inquirer.prompt([{ - name: 'commitMessage', - when: hasGit, - type: 'input', - message: 'Initial Git commit message:', - default: 'init' - }])).commitMessage - } - // inject core service preset.plugins['@vue/cli-service'] = Object.assign({ projectName: name @@ -180,7 +164,7 @@ module.exports = class Creator { await run('git', ['config', 'user.name', 'test']) await run('git', ['config', 'user.email', 'test@test.com']) } - await run('git', ['commit', '-m', initialCommit]) + await run('git', ['commit', '-m', cliOptions.initialCommit || 'init']) } // log instructions