Neverending Prototype Mode

    css-source-map-rebase
    TypeScript icon, indicating that this package has built-in type declarations

    5.0.1 • Public • Published

    css-source-map-rebase

    NPM version Build Status Coverage percentage

    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

    Keywords

    none

    Install

    npm i css-source-map-rebase

    DownloadsWeekly Downloads

    24

    Version

    5.0.1

    License

    Apache-2.0

    Unpacked Size

    22.4 kB

    Total Files

    7

    Last publish

    Collaborators

    • ericmorand