stylus.url() base64 кодирует шрифт woff2

Я использую Stylus для написания CSS и stylus.url() метод base64 для кодирования всех изображений. Моя проблема в том, что стилус также закодирует один из шрифтов. Кодируется только один шрифт woff2. Все остальные остаются в виде URL.

Как можно игнорировать файл шрифта или иным образом предотвратить его кодирование в base64 при использовании stylus.url() метод.

font.styl:

@font-face {
    font-family: 'GillSansMTStd';
    src: url('../fonts/2D770A_6_0.eot');
    src: local('☺︎'),
         url('../fonts/2D770A_6_0.woff2') format('woff2'),
         url('../fonts/2D770A_6_0.woff') format('woff'),
         url('../fonts/2D770A_6_0.ttf')  format('truetype');
}

main.css:

@font-face {
    font-family: 'GillSansMTStd';
    src: url("../fonts/2D770A_6_0.eot");
    src: local('☺︎'),
         url("data:application/font-woff2;base64,d09GMgABA[...]") format('woff2'),
         url('../fonts/2D770A_6_0.woff') format('woff'),
         url('../fonts/2D770A_6_0.ttf')  format('truetype');
}

2 ответа

Решение

Чтение исходного кода для stylus.url() Я нашел mimes вариант. Что я не нашел нигде документально. Я могу установить, какие типы MIME я хочу кодировать в Base64, установив эту опцию:

stylus(str)
    .set('filename', __dirname + '/css/test.styl')
    .define('url', stylus.url({
        mimes: {
            '.gif': 'image/gif',
            '.png': 'image/png',
            '.jpg': 'image/jpeg',
            '.jpeg': 'image/jpeg',
            '.svg': 'image/svg+xml'
        }
    }))
    .render(function(err, css){

    });

Я обнаружил, что не будет никакого эффекта без pathsвариант

      stylus(stylus_str)
    .use(autoprefixer())
    .define('url', stylus.url({
        limit: 30000,
        mimes: {
            '.gif': 'image/gif',
            '.png': 'image/png',
            '.jpg': 'image/jpeg',
            '.jpeg': 'image/jpeg',
            '.svg': 'image/svg+xml'
        },
        paths: [dirname(file_path)]
    }))
    .render((err, output)=>{
        console.log(output.yellow)
    })
Другие вопросы по тегам