From c8ced0affee7917bae3e1bdc8c9d307160f230fd Mon Sep 17 00:00:00 2001 From: Jasper De Moor Date: Tue, 18 Dec 2018 19:00:45 +0100 Subject: [PATCH 1/4] fix absolute paths in sass --- packages/core/parcel-bundler/src/assets/SASSAsset.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/parcel-bundler/src/assets/SASSAsset.js b/packages/core/parcel-bundler/src/assets/SASSAsset.js index 3760328e650..8e63c20fa77 100644 --- a/packages/core/parcel-bundler/src/assets/SASSAsset.js +++ b/packages/core/parcel-bundler/src/assets/SASSAsset.js @@ -45,6 +45,7 @@ class SASSAsset extends Asset { ? opts.importer : [opts.importer]; opts.importer.push((url, prev, done) => { + url = url.replace('file://', ''); url = parseCSSImport(url); resolver .resolve(url, prev === 'stdin' ? this.name : prev) From bc9ac4646c5b2c59b0718f4ae1f2480c68afacd1 Mon Sep 17 00:00:00 2001 From: Jasper De Moor Date: Thu, 20 Dec 2018 20:14:45 +0100 Subject: [PATCH 2/4] add test --- .../integration/scss-absolute-imports/b.scss | 3 +++ .../scss-absolute-imports/style.scss | 5 +++++ packages/core/integration-tests/test/sass.js | 18 ++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 packages/core/integration-tests/test/integration/scss-absolute-imports/b.scss create mode 100644 packages/core/integration-tests/test/integration/scss-absolute-imports/style.scss diff --git a/packages/core/integration-tests/test/integration/scss-absolute-imports/b.scss b/packages/core/integration-tests/test/integration/scss-absolute-imports/b.scss new file mode 100644 index 00000000000..b28d1ab0817 --- /dev/null +++ b/packages/core/integration-tests/test/integration/scss-absolute-imports/b.scss @@ -0,0 +1,3 @@ +.b { + color: red; +} diff --git a/packages/core/integration-tests/test/integration/scss-absolute-imports/style.scss b/packages/core/integration-tests/test/integration/scss-absolute-imports/style.scss new file mode 100644 index 00000000000..f7caaac8c3b --- /dev/null +++ b/packages/core/integration-tests/test/integration/scss-absolute-imports/style.scss @@ -0,0 +1,5 @@ +@import '/b.scss'; + +.a { + color: blue; +} diff --git a/packages/core/integration-tests/test/sass.js b/packages/core/integration-tests/test/sass.js index 5febcbd0e64..a68ea5753e4 100644 --- a/packages/core/integration-tests/test/sass.js +++ b/packages/core/integration-tests/test/sass.js @@ -228,4 +228,22 @@ describe('sass', function() { assert(css.includes('.foo { color: blue;')); assert(css.includes('.bar { color: green;')); }); + + it.only('should support absolute imports', async function() { + let b = await bundle( + path.join(__dirname, '/integration/scss-absolute-imports/style.scss') + ); + + await assertBundleTree(b, { + name: 'style.css', + assets: ['style.scss'] + }); + + let css = await fs.readFile( + path.join(__dirname, '/dist/style.css'), + 'utf8' + ); + assert(css.includes('.a')); + assert(css.includes('.b')); + }); }); From c4f70fd9f655b1465d8e8c0dfae74f710ee5c70d Mon Sep 17 00:00:00 2001 From: Jasper De Moor Date: Thu, 20 Dec 2018 20:16:54 +0100 Subject: [PATCH 3/4] only replace if file:// is at start --- packages/core/parcel-bundler/src/assets/SASSAsset.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/parcel-bundler/src/assets/SASSAsset.js b/packages/core/parcel-bundler/src/assets/SASSAsset.js index 8e63c20fa77..a1901f94fe3 100644 --- a/packages/core/parcel-bundler/src/assets/SASSAsset.js +++ b/packages/core/parcel-bundler/src/assets/SASSAsset.js @@ -45,7 +45,7 @@ class SASSAsset extends Asset { ? opts.importer : [opts.importer]; opts.importer.push((url, prev, done) => { - url = url.replace('file://', ''); + url = url.replace(/^file:\/\//, ''); url = parseCSSImport(url); resolver .resolve(url, prev === 'stdin' ? this.name : prev) From 5de244cedd253afedac3b958433f7d1973adb6c9 Mon Sep 17 00:00:00 2001 From: Devon Govett Date: Wed, 16 Jan 2019 20:03:30 -0800 Subject: [PATCH 4/4] Remove .only --- packages/core/integration-tests/test/sass.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/integration-tests/test/sass.js b/packages/core/integration-tests/test/sass.js index a68ea5753e4..853e5d02e23 100644 --- a/packages/core/integration-tests/test/sass.js +++ b/packages/core/integration-tests/test/sass.js @@ -229,7 +229,7 @@ describe('sass', function() { assert(css.includes('.bar { color: green;')); }); - it.only('should support absolute imports', async function() { + it('should support absolute imports', async function() { let b = await bundle( path.join(__dirname, '/integration/scss-absolute-imports/style.scss') );