Rebase your CSS assets relatively to the source file they were imported from.
npm install css-source-map-rebase
Consider the following SASS sources:
index.scss
@import "partial/bar.scss";
.foo {
background: url('./foo.png');
}
partial/bar.scss
.bar {
background: url('./bar.png');
}
By rebasing the assets relatively to the file they were imported from, the resulting CSS would be:
.bar {
background: url('partial/bar.png');
}
.foo {
background: url('foo.png');
}
css-source-map-rebase uses the mapping provided by a source map to resolve the original file the assets where imported from. Any tool able to generate a source map from a stylesheet source file (may it be SASS, LESS or any other pre-processor language) is appropriate. Here is how one could use node-sass and css-source-map-rebase together to render a stylesheet and rebase its assets.
const {render} = require('node-sass');
const {Rebaser} = require('css-source-map-rebase');
render({
file: 'index.scss',
sourceMap: true,
sourceMapEmbed: sourceMapEmbed,
outFile: 'index.css'
}, (error, result) => {
if (error) {
// do something on error
}
else {
let rebaser = new Rebaser();
rebaser.rebase(result.css)
.then(result => {
// result.css contains the rendered stylesheet with rebased assets
// result.map contains the source map
});
}
});
Read the documentation for more information.
- Fork the main repository
- Code
- Implement tests using tape
- Issue a pull request keeping in mind that all pull requests must reference an issue in the issue queue
The test suite can be run by executing the native test
npm script:
npm test
This project adheres to a strict 100% code coverage policy. Code coverage can be checked by executing the cover
npm script:
npm run cover
The documentation can be generated by executing the build:doc
npm script:
npm run build:doc
This is usually not needed as the doc will be generated on every new release.
Apache-2.0 © Eric MORAND