fix: css.extract options handling

close #1061
This commit is contained in:
Evan You
2018-04-27 12:52:10 -04:00
parent 9cfafea328
commit 8e72943fcf
3 changed files with 5 additions and 7 deletions

View File

@@ -40,6 +40,7 @@ module.exports = {
// CSS related options
css: {
// extract CSS in components into a single CSS file (only in production)
// can also be an object of options to pass to extract-text-webpack-plugin
extract: true,
// enable CSS source maps?

View File

@@ -103,18 +103,15 @@ module.exports = (api, options) => {
// inject CSS extraction plugin
if (extract) {
const userOptions = options.extractCSS && typeof options.extractCSS === 'object'
? options.extractCSS
const extractOptions = userOptions.extract && typeof userOptions.extract === 'object'
? userOptions.extract
: {}
webpackConfig
.plugin('extract-css')
.use(ExtractTextPlugin, [Object.assign({
filename: `css/[name].[contenthash:8].css`,
allChunks: true
}, userOptions)])
}, extractOptions)])
}
// TODO document receipe for using css.loaderOptions to add `data` option
// to sass-loader
})
}

View File

@@ -16,7 +16,7 @@ const schema = createSchema(joi => joi.object({
// css
css: joi.object({
modules: joi.boolean(),
extract: joi.boolean(),
extract: joi.alternatives().try(joi.boolean(), joi.object()),
localIdentName: joi.string(),
sourceMap: joi.boolean(),
loaderOptions: joi.object({