Шрифт snowpack woff2 не загружается
Снежный покров супер быстрее, чем веб-пакет. но я получаю некоторую проблему, например, когда я импортирую font-awesome, мой проект реакции не работает. потому что Snowpack не загружает файл шрифта (.woff2).
Официальный сайт snowpack не по этой теме.
теперь как исправить?
1 ответ
Ну, сейчас это боль. Я объясню почему.
Теория:
- [ Пропустить вниз, если вы не используете PostCSS] Используйте Snowpack
plugin-postcss
вместе с PostCSSpostcss-import
плагин. Ваша конфигурация PostCSS может выглядеть так:
module.exports = {
plugins: {
'postcss-import': {},
// Other plugins...
}
}
- Если вы не хотите исправлять все
@font-face
пути, ваш CSS должен находиться в подпапке, напримерcss/app.css
, потому что Font Awesome CSS импортирует шрифты шрифты относительным образом (../webfonts
).
@import '@fortawesome/fontawesome-free/css/all.css';
/** Your CSS rules... **/
- Последний шаг, вы должны отразить
node_modules/@fortawesome/fontawesome-free/webfonts
каталог в каталог вашего назначения сборки (мой_dist
). Это можно легко решить с помощью следующего кода в вашем файле :
"mount": {
"node_modules/@fortawesome": {
"url": "/webfonts",
"static": true,
"resolve": false
}
}
Но из-за этой проблемы он не будет работать в продакшене , в основном Snowpack не может зеркально отображать что-либо из
node_modules
потому что эта папка жестко исключена.
Я нашел обходной путь, используяncp package
(
npm i --save-dev ncp
) и@snowpack/plugin-run-script
. Добавьте плагин в
snowpack.config.js
и установите
cmd
вариант выглядеть так:
"plugins": [
["@snowpack/plugin-run-script", {
"cmd": "ncp node_modules/@fortawesome/fontawesome-free/webfonts/ _dist/webfonts"
}]
]
Это скопирует содержимое папки Font Awesome в корневую веб-папку с именем
webfonts
, поэтому относительный импорт CSS будет работать.
Если вы не используете PostCSS, смонтируйте папку на шаге 3 (будет работать в режиме разработки, а не в производстве), используйте
ncp
как объяснено (решит проблему в производстве) и добавьте эту строку в точку входа JavaScript вашего приложения:
import '@fortawesome/fontawesome-free/css/all.css';