laravel-mixでコンパイルした場合に日本語フォント名がエスケープされて、Webフォントが使えなくなった

laravel-mixでコンパイルした場合に日本語フォント名がエスケープされて、Webフォントが使えなくなることがありましたが、laravel-mixのイベントフック(Event Hooks)を使ってコンパイル後にエスケープ前の変換して解決しました。(もうちょっとスマートにできないかなぁ。。悩み)

Webフォントのサービスは。REALTYPE(https://www.realtype.jp)
以下のように日本語だとOK

.hoge {
    font-family : 'A+mfCv-AXIS Font ベーシック UL ProN';
}

laravel-mixでsassコンパイルすると以下のようにエスケープされてNG

.hoge {
    font-family : 'A+mfCv-AXIS Font \30D9\30FC\30B7\30C3\30AF   UL ProN';
}

次のようにして解決

then()でコンパイル後のイベントをフックして読み込んで置換(split-join)して再度書き込んでます。


//元のフォント名  'A+mfCv-AXIS Font ベーシック UL ProN'
//エスケープされたフォント名  'A+mfCv-AXIS Font \\30D9\\30FC\\30B7\\30C3\\30AF   UL ProN'

mix
    .sass('style.sass', 'dist/css/')
    .then(() => {
        let css = fs.readFileSync('dist/css/style.css', {encoding: "utf-8"});
        css = css.split('\\30D9\\30FC\\30B7\\30C3\\30AF  ').join('ベーシック');
        fs.writeFileSync('dist/css/style.css', css);
    });

参考 : laravel-mix : EventHooiks
https://github.com/JeffreyWay/laravel-mix/blob/master/docs/event-hooks.md