diff --git a/lib/loader.js b/lib/loader.js index 50919ccf..c35c8942 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -14,15 +14,27 @@ module.exports = function(content, map) { // postcss-spritesに各コンポーネント用のsprite.pngを渡す方法がわからない if (map) { var pathtoSprites = path.resolve('client/images/sprites'); - var nestedImport = escapeRegexp('../../../styles'); var parsedMap = JSON.parse(map); var hasSprite = content.match(/url\(client\/images\/sprites/) ? true : false; - var isNested = parsedMap.sources.filter(function(source) { - return source.match(nestedImport) + var nestedImport1 = escapeRegexp('../../../styles'); + var nestedImport2 = escapeRegexp('../../../../styles'); + var nestedImport3 = escapeRegexp('../../../../../styles'); + var isNested1 = parsedMap.sources.filter(function(source) { + return source.match(nestedImport1); + }).length > 0; + var isNested2 = parsedMap.sources.filter(function(source) { + return source.match(nestedImport2); + }).length > 0; + var isNested3 = parsedMap.sources.filter(function(source) { + return source.match(nestedImport3); }).length > 0; if (hasSprite) { - if (isNested) { + if (isNested3) { + content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../../../../images/sprites/'); + } else if (isNested2) { + content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../../../images/sprites/'); + } else if (isNested1) { content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../../images/sprites/'); } else { content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../images/sprites/');