У меня есть настройка webpack4 + babel bundler для веб-приложения реагирования.В файле LESS я ссылаюсь на локальный шрифт.Этот шрифт копируется в папку dist
при сборке, и его имя файла хэшируется.Я хочу иметь возможность предварительно загрузить этот шрифт.
Вот мой файл LESS:
@font-face {
font-family: 'Test';
src: url('../fonts/test.ttf') format('truetype');
font-weight: 400;
}
Я пробовал следующие подходы, но пока безуспешно:
- Добавление пользовательского импорта в основной файл JS моего приложения.
import(/* webpackPreload: true */ "../fonts/test.ttf");
Вот мой файл .babelrc
:
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-syntax-dynamic-import"
]
}
Запуск webpack
не вызывает предварительной загрузкиНаправления в любом месте, насколько я могу видеть в выведенном HTML - я искал содержимое папки dist
и ничего не нашел.
preload-webpack-plugin
Я добавляю это в мой webpack.config.js
файл:
plugins: [
new HtmlWebpackPlugin(),
new PreloadWebpackPlugin({
rel: 'preload',
as(entry) {
if (/\.css$/.test(entry)) return 'style';
if (/\.woff$/.test(entry)) return 'font';
if (/\.png$/.test(entry)) return 'image';
return 'script';
}
})
]
Это создает предварительные загрузки для пакетов файлов сценариев JS, но не для CSSи шрифты.
Есть идеи, как заставить это работать?