diff --git a/lib/util.js b/lib/util.js index 08d3d1c..df05415 100644 --- a/lib/util.js +++ b/lib/util.js @@ -8,6 +8,19 @@ const readPkgUp = require('read-pkg-up'); const postcss = require('postcss'); const atImport = require('postcss-import'); +const removeTilde = postcss.plugin( + 'postcss-import-remove-tilde', + () => + function(css) { + css.walkAtRules('import', rule => { + rule.params = rule.params.replace( + /((?:url\s*\(\s*)?['"])~/, + '$1' + ); + }); + } +); + module.exports.identifyCssModule = async function identifyCssModule(filePath) { const { pkg: { name, version }, path: packagePath } = await readPkgUp({ normalize: false, @@ -21,6 +34,7 @@ module.exports.identifyCssModule = async function identifyCssModule(filePath) { module.exports.bundleCssModule = async function bundleCssModule(filePath) { const fileContents = await readFile(filePath, 'utf8'); const { css } = await postcss() + .use(removeTilde()) .use(atImport()) .process(fileContents, { from: filePath }); return css; diff --git a/test/test-assets/my-module-3/css/main.css b/test/test-assets/my-module-3/css/main.css index 197e3e7..2bcff3e 100644 --- a/test/test-assets/my-module-3/css/main.css +++ b/test/test-assets/my-module-3/css/main.css @@ -1,4 +1,7 @@ /* my-module-3/main.css */ -@import url('./dep.css'); -@import url('dep/main.css'); +@import url("./dep.css"); +@import url("dep/main.css"); +@import url("~@dep/main.css"); +@import "dep/secondary.css"; +@import "~dep/secondary.css";