base64-inline-loader

A Base64 loader for Webpack

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
base64-inline-loader
3812.0.1a year ago6 years agoMinified + gzip package size for base64-inline-loader in KB

Readme

base64-inline-loader
A Base64 loader for webpack. Encodes all binary files to Base64 strings.

Installation

npm
npm install base64-inline-loader --save

or
yarn
yarn add -D base64-inline-loader

Usage

Config

const path = require('path');

module.exports = [
    {
        ...

        module: {
            rules: [
                {
                    test: /\.(jpe?g|png|ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
                    use: ['base64-inline-loader']
                }
            ]
        }

        ...
    }
];

Input

@font-face {
    font-family: 'icons';
    src: url('./icon.woff');
}

body {
    background-image: url('./image.png');
}

Output

@font-face {
    font-family: 'icons';
    src: url('data:application/x-font-woff;charset=utf-8;base64,[BASE_64_STRING...]')
}

body {
    background-image: url('data:application/png;charset=utf-8;base64,[BASE_64_STRING...]');
}

Options

  • limit — The limit can be specified with a query parameter.

{
    use: {
        loader: 'base64-inline-loader',
        options: {
            limit: 1000
        }
    }
}

  • typeMapper — use this option to fix your non-standard MIME types

{
    use: [
        {
            loader: 'base64-inline-loader',
            options: {
                typeMapper: {
                    'text/less': 'text/css'
                }
            }
        },
        'less-loader'
    ]
}

<link rel="stylesheet" href="data:text/less;charset=utf-8;base64,Lm54dC1lcnJvci1wYW..." />
````

## Tests
npm test ```