From ea834412f6120ad2069219cfe89e0f171124c0ec Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 4 May 2018 19:03:07 -0400 Subject: [PATCH] feat: new option "preserveWhitespace" --- docs/config.md | 19 ++++++++++--------- packages/@vue/cli-service/lib/config/base.js | 2 +- packages/@vue/cli-service/lib/options.js | 4 ++++ 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/config.md b/docs/config.md index da608be2e1..bd5e0ca157 100644 --- a/docs/config.md +++ b/docs/config.md @@ -29,15 +29,16 @@ module.exports = { // explicitly transpile a dependency with this option. transpileDependencies: [/* string or regex */], + // whether to preserve whitespaces between elements during template + // compilation. Defaults to false for smaller compiled code size and + // performance. + preserveWhitepsace: false, + // tweak internal webpack configuration. // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md chainWebpack: () => {}, configureWebpack: () => {}, - // vue-loader options - // https://vue-loader.vuejs.org/en/options.html - vueLoader: {}, - // generate sourceMap for production build? productionSourceMap: true, @@ -47,16 +48,16 @@ module.exports = { // can also be an object of options to pass to extract-text-webpack-plugin extract: true, + // Enable CSS modules for all css / pre-processor files. + // This option does not affect *.vue files. + modules: false, + // enable CSS source maps? sourceMap: false, // pass custom options to pre-processor loaders. e.g. to pass options to // sass-loader, use { sass: { ... } } - loaderOptions: {}, - - // Enable CSS modules for all css / pre-processor files. - // This option does not affect *.vue files. - modules: false + loaderOptions: {} }, // use thread-loader for babel & TS in production build diff --git a/packages/@vue/cli-service/lib/config/base.js b/packages/@vue/cli-service/lib/config/base.js index 5cebfa7bed..448dff6138 100644 --- a/packages/@vue/cli-service/lib/config/base.js +++ b/packages/@vue/cli-service/lib/config/base.js @@ -48,7 +48,7 @@ module.exports = (api, options) => { .loader('vue-loader') .options({ compilerOpitons: { - preserveWhitespace: false + preserveWhitespace: options.preserveWhitespace } }) diff --git a/packages/@vue/cli-service/lib/options.js b/packages/@vue/cli-service/lib/options.js index 71f57b90d8..dd140df1de 100644 --- a/packages/@vue/cli-service/lib/options.js +++ b/packages/@vue/cli-service/lib/options.js @@ -5,6 +5,7 @@ const schema = createSchema(joi => joi.object({ outputDir: joi.string(), compiler: joi.boolean(), transpileDependencies: joi.array(), + preserveWhitespace: joi.boolean(), productionSourceMap: joi.boolean(), parallel: joi.boolean(), devServer: joi.object(), @@ -58,6 +59,9 @@ exports.defaults = () => ({ // deps to transpile transpileDependencies: [/* string or regex */], + // whether to preserve whitespaces between elements + preserveWhitespace: false, + // sourceMap for production build? productionSourceMap: true,