diff --git a/packages/@vue/cli-service/generator/index.js b/packages/@vue/cli-service/generator/index.js index 04fe12fd7c..b92c7c0294 100644 --- a/packages/@vue/cli-service/generator/index.js +++ b/packages/@vue/cli-service/generator/index.js @@ -1,5 +1,3 @@ -const { execa } = require('@vue/cli-shared-utils') - module.exports = (api, options) => { api.render('./template', { doesCompile: api.hasPlugin('babel') || api.hasPlugin('typescript') @@ -58,39 +56,12 @@ module.exports = (api, options) => { // for v3 compatibility if (options.router && !api.hasPlugin('router')) { - api.extendPackage({ - devDependencies: { - '@vue/cli-plugin-router': '^4.0.0' - } - }) - - api.onCreateComplete(() => { - execa.sync('vue', [ - 'invoke', - '@vue/cli-plugin-router', - `--historyMode=${options.routerHistoryMode ? 'true' : ''}` - ], { - cwd: api.resolve('.') - }) - }) + require('./router')(api, options) } // for v3 compatibility if (options.vuex && !api.hasPlugin('vuex')) { - api.extendPackage({ - devDependencies: { - '@vue/cli-plugin-vuex': '^4.0.0' - } - }) - - api.onCreateComplete(() => { - execa.sync('vue', [ - 'invoke', - '@vue/cli-plugin-vuex' - ], { - cwd: api.resolve('.') - }) - }) + require('./vuex')(api) } // additional tooling configurations diff --git a/packages/@vue/cli-service/generator/router.js b/packages/@vue/cli-service/generator/router.js new file mode 100644 index 0000000000..025c70da6d --- /dev/null +++ b/packages/@vue/cli-service/generator/router.js @@ -0,0 +1,5 @@ +module.exports = (api, options) => { + require('@vue/cli-plugin-vuex/generator')(api, { + historyMode: options.routerHistoryMode + }) +} diff --git a/packages/@vue/cli-service/generator/vuex.js b/packages/@vue/cli-service/generator/vuex.js new file mode 100644 index 0000000000..149887d7e8 --- /dev/null +++ b/packages/@vue/cli-service/generator/vuex.js @@ -0,0 +1,3 @@ +module.exports = api => { + require('@vue/cli-plugin-vuex/generator')(api) +} diff --git a/packages/@vue/cli-service/package.json b/packages/@vue/cli-service/package.json index 635984ef61..fd787b7059 100644 --- a/packages/@vue/cli-service/package.json +++ b/packages/@vue/cli-service/package.json @@ -26,6 +26,8 @@ "@intervolga/optimize-cssnano-plugin": "^1.0.5", "@soda/friendly-errors-webpack-plugin": "^1.7.1", "@vue/cli-overlay": "^4.0.2", + "@vue/cli-plugin-router": "^4.0.2", + "@vue/cli-plugin-vuex": "^4.0.2", "@vue/cli-shared-utils": "^4.0.2", "@vue/component-compiler-utils": "^3.0.0", "@vue/preload-webpack-plugin": "^1.1.0",