diff --git a/packages/@vue/cli-service/generator/index.js b/packages/@vue/cli-service/generator/index.js
index <HASH>..<HASH> 100644
--- a/packages/@vue/cli-service/generator/index.js
+++ b/packages/@vue/cli-service/generator/index.js
@@ -66,4 +66,9 @@ module.exports = (api, options) => {
       devDependencies: deps[options.cssPreprocessor]
     })
   }
+
+  // additional tooling configurations
+  if (options.configs) {
+    api.extendPackage(options.configs)
+  }
 }
diff --git a/packages/@vue/cli/lib/options.js b/packages/@vue/cli/lib/options.js
index <HASH>..<HASH> 100644
--- a/packages/@vue/cli/lib/options.js
+++ b/packages/@vue/cli/lib/options.js
@@ -15,7 +15,8 @@ const presetSchema = createSchema(joi => joi.object().keys({
   router: joi.boolean(),
   vuex: joi.boolean(),
   cssPreprocessor: joi.string().only(['sass', 'less', 'stylus']),
-  plugins: joi.object().required()
+  plugins: joi.object().required(),
+  configs: joi.object()
 }))
 
 const schema = createSchema(joi => joi.object().keys({
feat: allow specifying additional configs in preset