Rebase url() functions when transforming CSS
npm install @csstools/postcss-rebase-urlnpm install @csstools/postcss-rebase-url --save-dev
[PostCSS Rebase URL] rebases url() functions when transforming CSS.
When bundling CSS, the location of the final stylesheet file will be different than the individual source files.
[PostCSS Rebase URL] rewrites the contents of url() functions so that relative paths continue to work.
Instead of manually mapping where the files will be in the final output you can use this plugin
and simply use the relative paths to each source file.
_If you need something with more knobs and dials, please checkout postcss-url_
``csspostcss-import
/ when used with a bundler like /
/ test/examples/example.css /
@import url("imports/basic.css");
/ test/examples/imports/basic.css /
.foo {
background: url('../../images/green.png');
}
/ becomes /
/ test/examples/example.expect.css /
.foo {
background: url("../images/green.png");
}
`
Add [PostCSS Rebase URL] to your project:
`bash`
npm install postcss @csstools/postcss-rebase-url --save-dev
Use it as a [PostCSS] plugin:
`js
const postcss = require('postcss');
const postcssRebaseURL = require('@csstools/postcss-rebase-url');
postcss([
postcssRebaseURL(/ pluginOptions /)
]).process(YOUR_CSS /, processOptions /);
``
[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
[discord]: https://discord.gg/bUadyRwkJS
[npm-url]: https://www.npmjs.com/package/@csstools/postcss-rebase-url
[PostCSS]: https://github.com/postcss/postcss
[PostCSS Rebase URL]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-rebase-url