From 4627a24d182d8171e39d8293208edc258eea51b9 Mon Sep 17 00:00:00 2001 From: HelloYou Date: Mon, 8 Aug 2016 15:14:03 +0800 Subject: [PATCH 1/5] add global options `css` for query like `babel` : https://github.com/babel/babel-loader/blob/master/index.js#L36 --- lib/loader.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/loader.js b/lib/loader.js index 7574ba15..90a55f22 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -3,6 +3,7 @@ Author Tobias Koppers @sokra */ var path = require("path"); +var assign = require('object-assign'); var loaderUtils = require("loader-utils"); var processCss = require("./processCss"); var getImportPrefix = require("./getImportPrefix"); @@ -12,7 +13,9 @@ var compileExports = require("./compile-exports"); module.exports = function(content, map) { if(this.cacheable) this.cacheable(); var callback = this.async(); - var query = loaderUtils.parseQuery(this.query); + var globalOptions = this.options.css || {}; + var loaderOptions = loaderUtils.parseQuery(this.query); + var query = assign({}, globalOptions, loaderOptions); var root = query.root; var moduleMode = query.modules || query.module; var camelCaseKeys = query.camelCase || query.camelcase; From 8ae8deb45847cad063cf5c9468389f080b550311 Mon Sep 17 00:00:00 2001 From: HelloYou Date: Mon, 8 Aug 2016 15:43:09 +0800 Subject: [PATCH 2/5] single quote change to double --- lib/loader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/loader.js b/lib/loader.js index 90a55f22..dd840fa8 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -3,7 +3,7 @@ Author Tobias Koppers @sokra */ var path = require("path"); -var assign = require('object-assign'); +var assign = require("object-assign"); var loaderUtils = require("loader-utils"); var processCss = require("./processCss"); var getImportPrefix = require("./getImportPrefix"); From 4606c23d848ace8093a5bbb7911af9c951b7fc91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8C=AF=E9=9C=87?= <865702942@qq.com> Date: Mon, 8 Aug 2016 16:12:47 +0800 Subject: [PATCH 3/5] css to configKey (default cssLoader) --- lib/loader.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/loader.js b/lib/loader.js index dd840fa8..c3c3e22a 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -13,8 +13,9 @@ var compileExports = require("./compile-exports"); module.exports = function(content, map) { if(this.cacheable) this.cacheable(); var callback = this.async(); - var globalOptions = this.options.css || {}; var loaderOptions = loaderUtils.parseQuery(this.query); + var configKey = loaderOptions.config || "cssLoader"; + var globalOptions = this.options[configKey] || {}; var query = assign({}, globalOptions, loaderOptions); var root = query.root; var moduleMode = query.modules || query.module; From e250b6505c4e654aa3be4cbe4ca6b595f7707834 Mon Sep 17 00:00:00 2001 From: Chaptykov Date: Tue, 6 Sep 2016 13:29:10 +0700 Subject: [PATCH 4/5] Transfer customInterpolateName option --- lib/processCss.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/processCss.js b/lib/processCss.js index 53bfac98..c62942af 100644 --- a/lib/processCss.js +++ b/lib/processCss.js @@ -140,6 +140,11 @@ module.exports = function processCss(inputSource, inputMap, options, callback) { var forceMinimize = query.minimize; var minimize = typeof forceMinimize !== "undefined" ? !!forceMinimize : options.minimize; + if (!options.loaderContext.options) { + options.loaderContext.options = {}; + } + options.loaderContext.options.customInterpolateName = query.customInterpolateName; + var parserOptions = { root: root, mode: options.mode, From 015ceb51f043296a35ea107f76a9c1bedb4e43e1 Mon Sep 17 00:00:00 2001 From: Chaptykov Date: Tue, 6 Sep 2016 17:58:03 +0700 Subject: [PATCH 5/5] Use global options for localsLoader --- lib/localsLoader.js | 6 +++++- lib/processCss.js | 7 +++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/localsLoader.js b/lib/localsLoader.js index c1982a48..fa11ab5f 100644 --- a/lib/localsLoader.js +++ b/lib/localsLoader.js @@ -6,12 +6,16 @@ var loaderUtils = require("loader-utils"); var processCss = require("./processCss"); var getImportPrefix = require("./getImportPrefix"); var compileExports = require("./compile-exports"); +var assign = require("object-assign"); module.exports = function(content) { if(this.cacheable) this.cacheable(); var callback = this.async(); - var query = loaderUtils.parseQuery(this.query); + var loaderOptions = loaderUtils.parseQuery(this.query); + var configKey = loaderOptions.config || "cssLoader"; + var globalOptions = this.options[configKey] || {}; + var query = assign({}, globalOptions, loaderOptions); var moduleMode = query.modules || query.module; var camelCaseKeys = query.camelCase || query.camelcase; diff --git a/lib/processCss.js b/lib/processCss.js index c62942af..04dd12b6 100644 --- a/lib/processCss.js +++ b/lib/processCss.js @@ -140,10 +140,9 @@ module.exports = function processCss(inputSource, inputMap, options, callback) { var forceMinimize = query.minimize; var minimize = typeof forceMinimize !== "undefined" ? !!forceMinimize : options.minimize; - if (!options.loaderContext.options) { - options.loaderContext.options = {}; - } - options.loaderContext.options.customInterpolateName = query.customInterpolateName; + options.loaderContext.options = assign({}, options.loaderContext.options, { + customInterpolateName: query.customInterpolateName + }); var parserOptions = { root: root,