diff --git a/lib/getImportPrefix.js b/lib/getImportPrefix.js deleted file mode 100644 index 5d3be772..00000000 --- a/lib/getImportPrefix.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -module.exports = function getImportPrefix(loaderContext, query) { - if(query.importLoaders === false) - return ""; - var importLoaders = parseInt(query.importLoaders, 10) || 0; - var loadersRequest = loaderContext.loaders.slice( - loaderContext.loaderIndex, - loaderContext.loaderIndex + 1 + importLoaders - ).map(function(x) { return x.request; }).join("!"); - return "-!" + loadersRequest + "!"; -}; diff --git a/lib/loader.js b/lib/loader.js index 7574ba15..1473809e 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -5,10 +5,8 @@ var path = require("path"); var loaderUtils = require("loader-utils"); var processCss = require("./processCss"); -var getImportPrefix = require("./getImportPrefix"); var compileExports = require("./compile-exports"); - module.exports = function(content, map) { if(this.cacheable) this.cacheable(); var callback = this.async(); @@ -33,8 +31,9 @@ module.exports = function(content, map) { var cssAsString = JSON.stringify(result.source); - // for importing CSS - var importUrlPrefix = getImportPrefix(this, query); + result.importItems.forEach(function(imp) { + this.addDependency(imp.url); + }.bind(this)); var alreadyImported = {}; var importJs = result.importItems.filter(function(imp) { @@ -50,8 +49,8 @@ module.exports = function(content, map) { JSON.stringify("@import url(" + imp.url + ");") + ", " + JSON.stringify(imp.mediaQuery) + "]);"; } else { - var importUrl = importUrlPrefix + imp.url; - return "exports.i(require(" + loaderUtils.stringifyRequest(this, importUrl) + "), " + JSON.stringify(imp.mediaQuery) + ");"; + return "exports.i(require(" + loaderUtils.stringifyRequest(this, + imp.url) + "), " + JSON.stringify(imp.mediaQuery) + ");"; } }, this).join("\n"); @@ -59,8 +58,7 @@ module.exports = function(content, map) { var match = result.importItemRegExp.exec(item); var idx = +match[1]; var importItem = result.importItems[idx]; - var importUrl = importUrlPrefix + importItem.url; - return "\" + require(" + loaderUtils.stringifyRequest(this, importUrl) + ").locals" + + return "\" + require(" + loaderUtils.stringifyRequest(this, importItem.url) + ")" + "[" + JSON.stringify(importItem.export) + "] + \""; } diff --git a/lib/localsLoader.js b/lib/localsLoader.js index c1982a48..634a5668 100644 --- a/lib/localsLoader.js +++ b/lib/localsLoader.js @@ -4,10 +4,8 @@ */ var loaderUtils = require("loader-utils"); var processCss = require("./processCss"); -var getImportPrefix = require("./getImportPrefix"); var compileExports = require("./compile-exports"); - module.exports = function(content) { if(this.cacheable) this.cacheable(); var callback = this.async(); @@ -23,15 +21,11 @@ module.exports = function(content) { }, function(err, result) { if(err) return callback(err); - // for importing CSS - var importUrlPrefix = getImportPrefix(this, query); - function importItemMatcher(item) { var match = result.importItemRegExp.exec(item); var idx = +match[1]; var importItem = result.importItems[idx]; - var importUrl = importUrlPrefix + importItem.url; - return "\" + require(" + loaderUtils.stringifyRequest(this, importUrl) + ")" + + return "\" + require(" + JSON.stringify(importItem.url) + ")" + "[" + JSON.stringify(importItem.export) + "] + \""; } diff --git a/test/helpers.js b/test/helpers.js index fc99c8d3..182c1386 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -34,6 +34,7 @@ function assetEvaluated(output, result, modules) { function runLoader(loader, input, map, addOptions, callback) { var opt = { + addDependency: function(url) {}, options: { context: "" },