css-source-map-rebase
v6.0.0-beta.1
Published
Rebase your CSS assets based on a source map.
Downloads
22
Readme
css-source-map-rebase
Rebase your CSS assets relatively to the source file they were imported from.
Installation
npm install css-source-map-rebase
Example
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');
}
How it works
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
});
}
});
API
Read the documentation for more information.
Contributing
- 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
Running the test suite
The test suite can be run by executing the native test
npm script:
npm test
Checking code coverage
This project adheres to a strict 100% code coverage policy. Code coverage can be checked by executing the cover
npm script:
npm run cover
Generating the documentation
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.
License
Apache-2.0 © Eric MORAND