Je souhaite ajouter Font Awesome 5 à mon projet Symfony 4, voici ce que j'ai fait:
yarn add --dev @fortawesome/fontawesome-free
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
.addEntry('js/app', './assets/js/app.js')
.addStyleEntry('css/app', './assets/css/app.scss')
./node_modules/.bin/encore dev
Tout semble aller pour le mieux, mais lorsque j'essaie d'utiliser une police géniale à mon avis, je ne reçois qu'une icône carrée. Le fichier app.css généré semble correct car je peux voir les définitions des icônes de police géniales, par exemple:
.fa-sign-out-alt:before {
content: "\F2F5";
}
Il semble simplement que la partie "contenu" est manquante, car les polices ne sont pas chargées ... Dois-je ajouter quelque chose pour charger les polices Web? J'ai essayé d'ajouter la police awesome js dans mon fichier d'actif app.js mais cela ne change rien ... J'ai également essayé d'ajouter des chargeurs personnalisés à la configuration de mon webpack encore (comme ceci https://github.com /shakacode/font-awesome-loader/blob/master/docs/usage-webpack2.md#setup-for-webpack-2 ) J'ai également essayé de vider le cache, même résultat ...
Une idée?
Selon font-awesome docs ici , après l’installation du paquet
yarn add --dev @fortawesome/fontawesome-free
ou
npm install --save-dev @fortawesome/fontawesome-free
Exigez font-awesome dans votre fichier de configuration (dans mon cas et l'emplacement par défaut de Symfony 4) assets/js/app.js:
require('@fortawesome/fontawesome-free/css/all.min.css');
require('@fortawesome/fontawesome-free/js/all.js');
Compilez à nouveau yarn encore dev
et les icônes devraient apparaître.
Ajout de @import '~ @ fortawesome/fontawesome-free/scss/fontawesome'; n'est pas assez. Vous devez ajouter un (ou une combinaison) de ces fichiers (selon votre cas d'utilisation).
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/brands';
Je pense avoir trouvé une solution à votre problème, ce n'est probablement pas le meilleur mais un point de départ. Selon Documentation de Font Awesome , vous devez ajouter le fichier all.css à votre code. Ou les déclarations @fontface imports
ici.
import '~@fortawesome/fontawesome-free/css/all.css';
Ce qui suit fonctionne parfaitement pour moi:
npm install @fortawesome/fontawesome-free @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-solid-svg-icons -D
Ajouter ce qui suit dans un fichier .scss
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/brands';
fonctionne avec webpack 4
{
test: /\.woff2?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: 'url-loader?limit=10000',
},
{
test: /\.(ttf|eot|svg)(\?[\s\S]+)?$/,
use: 'file-loader',
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
use: [
'file-loader?name=images/[name].[ext]',
'image-webpack-loader?bypassOnDebug'
]
}]