From 1e10c886fea2018d83eeb6616077be2624ed5875 Mon Sep 17 00:00:00 2001 From: Shinichi Kogai Date: Thu, 22 Oct 2015 10:14:24 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[add]=20postcss-sprites=E3=81=A8=E3=81=AE?= =?UTF-8?q?=E3=83=AF=E3=83=BC=E3=82=AF=E3=82=A2=E3=83=A9=E3=82=A6=E3=83=B3?= =?UTF-8?q?=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/loader.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/loader.js b/lib/loader.js index 300d222f..3ea0d908 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -10,6 +10,12 @@ var getImportPrefix = require("./getImportPrefix"); module.exports = function(content, map) { + // ワークアラウンド + // postcss-spritesに各コンポーネント用のsprite.pngを渡す方法がわからない + if (content.match(/url\(client\/images\/sprite\.png\)/)) { + content = content.replace(/url\(client\/images\/sprite\.png\)/g, 'url(../../images/sprite.png)'); + } + if(this.cacheable) this.cacheable(); var callback = this.async(); var query = loaderUtils.parseQuery(this.query); From c312e3c844275a729817fb30885383812503adcd Mon Sep 17 00:00:00 2001 From: Shinichi Kogai Date: Fri, 23 Oct 2015 12:47:55 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[change]=20=E8=A4=87=E6=95=B0=E3=81=AEsprit?= =?UTF-8?q?es=E3=81=8C=E7=94=9F=E6=88=90=E3=81=95=E3=82=8C=E3=82=8B?= =?UTF-8?q?=E6=99=82=E3=81=AE=E3=81=9F=E3=82=81=E3=81=AE=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/loader.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 3ea0d908..7172ed16 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -12,8 +12,8 @@ var getImportPrefix = require("./getImportPrefix"); module.exports = function(content, map) { // ワークアラウンド // postcss-spritesに各コンポーネント用のsprite.pngを渡す方法がわからない - if (content.match(/url\(client\/images\/sprite\.png\)/)) { - content = content.replace(/url\(client\/images\/sprite\.png\)/g, 'url(../../images/sprite.png)'); + if (content.match(/url\(client\/images\/sprites/)) { + content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../images/sprites/'); } if(this.cacheable) this.cacheable(); From 3b106b9254f6734e232952cb879407c49cff0904 Mon Sep 17 00:00:00 2001 From: Shinichi Kogai Date: Sun, 22 Nov 2015 16:19:38 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[change]=20=E3=83=8D=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=81=97=E3=81=9Fsprite=E3=81=B8=E3=81=AE=E3=83=91=E3=82=B9?= =?UTF-8?q?=E3=81=B8=E3=81=AE=E3=83=AF=E3=83=BC=E3=82=AF=E3=82=A2=E3=83=A9?= =?UTF-8?q?=E3=82=A6=E3=83=B3=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/loader.js | 15 +++++++++++++-- package.json | 3 ++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 7172ed16..87029104 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -5,15 +5,26 @@ var path = require("path"); var loaderUtils = require("loader-utils"); var camelCase = require("lodash.camelcase"); +var escapeRegexp = require("escape-regexp"); var processCss = require("./processCss"); var getImportPrefix = require("./getImportPrefix"); +const pathtoSprites = path.resolve('client/images/sprites'); +const nestedImport = escapeRegexp('../../../styles'); module.exports = function(content, map) { // ワークアラウンド // postcss-spritesに各コンポーネント用のsprite.pngを渡す方法がわからない - if (content.match(/url\(client\/images\/sprites/)) { - content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../images/sprites/'); + const parsedMap = JSON.parse(map); + const hasSprite = content.match(/url\(client\/images\/sprites/) ? true : false; + const isNested = parsedMap.sources.filter((source)=> source.match(nestedImport)).length > 0; + + if (hasSprite) { + if (isNested) { + content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../../images/sprites/'); + } else { + content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../images/sprites/'); + } } if(this.cacheable) this.cacheable(); diff --git a/package.json b/package.json index ea267dac..30c3a110 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,10 @@ "dependencies": { "css-selector-tokenizer": "^0.5.1", "cssnano": ">=2.6.1 <4", + "escape-regexp": "0.0.1", "loader-utils": "~0.2.2", - "object-assign": "^4.0.1", "lodash.camelcase": "^3.0.1", + "object-assign": "^4.0.1", "postcss": "^5.0.6", "postcss-modules-extract-imports": "1.0.0-beta2", "postcss-modules-local-by-default": "^1.0.0", From d84345db196070ff572606e3ea3b5878759e4fcc Mon Sep 17 00:00:00 2001 From: Shinichi Kogai Date: Wed, 25 Nov 2015 18:43:04 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[fix]=20map=E3=81=8C=E3=81=82=E3=82=8B?= =?UTF-8?q?=E3=81=A8=E3=81=AF=E9=99=90=E3=82=89=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/loader.js | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 87029104..50919ccf 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -9,21 +9,24 @@ var escapeRegexp = require("escape-regexp"); var processCss = require("./processCss"); var getImportPrefix = require("./getImportPrefix"); -const pathtoSprites = path.resolve('client/images/sprites'); -const nestedImport = escapeRegexp('../../../styles'); - module.exports = function(content, map) { // ワークアラウンド // postcss-spritesに各コンポーネント用のsprite.pngを渡す方法がわからない - const parsedMap = JSON.parse(map); - const hasSprite = content.match(/url\(client\/images\/sprites/) ? true : false; - const isNested = parsedMap.sources.filter((source)=> source.match(nestedImport)).length > 0; + 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) + }).length > 0; - if (hasSprite) { - if (isNested) { - content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../../images/sprites/'); - } else { - content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../images/sprites/'); + if (hasSprite) { + if (isNested) { + content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../../images/sprites/'); + } else { + content = content.replace(/url\(client\/images\/sprites\//g, 'url(../../images/sprites/'); + } } } From e63e200319f506e581c7aa3b16e509517367bf4f Mon Sep 17 00:00:00 2001 From: okmttdhr <10101114fin@gmail.com> Date: Wed, 2 Mar 2016 11:36:05 +0700 Subject: [PATCH 5/5] =?UTF-8?q?[change]=E3=83=8D=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=81=8C=E6=B7=B1=E3=81=8F=E3=81=AA=E3=81=A3=E3=81=9F=E9=9A=9B?= =?UTF-8?q?=E3=81=AE=E3=83=AF=E3=83=BC=E3=82=AF=E3=82=A2=E3=83=A9=E3=82=A6?= =?UTF-8?q?=E3=83=B3=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/loader.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) 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/');