From b871592c3a55c0af733ab590135d2634e1c9fc99 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Sat, 4 Jul 2015 23:14:55 +0300 Subject: [PATCH 1/4] Ignore class names that start with dash in module mode --- lib/getLocalIdent.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/getLocalIdent.js b/lib/getLocalIdent.js index 7321669d..92f895fd 100644 --- a/lib/getLocalIdent.js +++ b/lib/getLocalIdent.js @@ -4,6 +4,7 @@ */ var loaderUtils = require("loader-utils"); module.exports = function getLocalIdent(loaderContext, localIdentName, localName, options) { + if ( /^\-/.test(localName) ) return localName; var request = loaderContext.options && typeof loaderContext.options.context === "string" ? loaderUtils.stringifyRequest({ context: loaderContext.options.context }, loaderUtils.getRemainingRequest(loaderContext)) : loaderContext.request; From 2460b9d5c3a8f685a22f8902b9c60fc8c659fb9e Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 14 Jul 2015 23:53:16 +0300 Subject: [PATCH 2/4] Prefix in module mode only elements (classes that start on small letter) --- lib/getLocalIdent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/getLocalIdent.js b/lib/getLocalIdent.js index 92f895fd..b59619a3 100644 --- a/lib/getLocalIdent.js +++ b/lib/getLocalIdent.js @@ -4,7 +4,7 @@ */ var loaderUtils = require("loader-utils"); module.exports = function getLocalIdent(loaderContext, localIdentName, localName, options) { - if ( /^\-/.test(localName) ) return localName; + if (!( /^[a-z]/.test(localName) )) return localName; var request = loaderContext.options && typeof loaderContext.options.context === "string" ? loaderUtils.stringifyRequest({ context: loaderContext.options.context }, loaderUtils.getRemainingRequest(loaderContext)) : loaderContext.request; From 5e942da81ca8cc886648a89436c6305cc54c5a7f Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 21 Jul 2015 20:29:15 +0300 Subject: [PATCH 3/4] Add support for [component] in name interpolation for module mode --- lib/getLocalIdent.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/getLocalIdent.js b/lib/getLocalIdent.js index b59619a3..ebe6c54b 100644 --- a/lib/getLocalIdent.js +++ b/lib/getLocalIdent.js @@ -2,6 +2,7 @@ MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ +var path = require("path"); var loaderUtils = require("loader-utils"); module.exports = function getLocalIdent(loaderContext, localIdentName, localName, options) { if (!( /^[a-z]/.test(localName) )) return localName; @@ -11,6 +12,11 @@ module.exports = function getLocalIdent(loaderContext, localIdentName, localName options.content = localName + " " + request; options.context = loaderContext.options && typeof loaderContext.options.context === "string" ? loaderContext.options.context : loaderContext.context; localIdentName = localIdentName.replace(/\[local\]/gi, localName); + var componentName = path.basename(loaderContext.resourcePath, path.extname(loaderContext.resourcePath)); + if (componentName === 'index' || /^_/.test(componentName)) { + componentName = path.basename(path.dirname(loaderContext.resourcePath)) + } + localIdentName = localIdentName.replace(/\[component\]/gi, componentName); var hash = loaderUtils.interpolateName(loaderContext, localIdentName, options); return hash.replace(/[^a-zA-Z0-9\-_]/g, "-").replace(/^([^a-zA-Z_])/, "_$1"); }; From 40d223a919aa3b833a46795f1dd5850624a4bfa2 Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Tue, 28 Jul 2015 11:49:32 +0300 Subject: [PATCH 4/4] Replace 'root' with component name in module mode. --- .gitignore | 3 ++- lib/getLocalIdent.js | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3091757a..0c79f8d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +/.idea/ node_modules -coverage \ No newline at end of file +coverage diff --git a/lib/getLocalIdent.js b/lib/getLocalIdent.js index ebe6c54b..c10e407a 100644 --- a/lib/getLocalIdent.js +++ b/lib/getLocalIdent.js @@ -11,7 +11,11 @@ module.exports = function getLocalIdent(loaderContext, localIdentName, localName loaderContext.request; options.content = localName + " " + request; options.context = loaderContext.options && typeof loaderContext.options.context === "string" ? loaderContext.options.context : loaderContext.context; - localIdentName = localIdentName.replace(/\[local\]/gi, localName); + if (localName === 'root') { + localIdentName = localIdentName.replace(/[_-]?\[local\]/gi, ''); + } else { + localIdentName = localIdentName.replace(/\[local\]/gi, localName); + } var componentName = path.basename(loaderContext.resourcePath, path.extname(loaderContext.resourcePath)); if (componentName === 'index' || /^_/.test(componentName)) { componentName = path.basename(path.dirname(loaderContext.resourcePath))