Utilisation de React 16, Bootstrap 3, Webpack 2 et Typescript 2.3.Comment puis-je restreindre le format de police utilisé par Webpack/Bootstrap?
Par défaut Bootstrap comprend WOFF
, WOFF2
, EOT
, TTF
et SVG
formats de police pour la police familiale Glyphicons-Halflings
.
Je suis heureux de soutenir que WOFF
format de police - ou tout au moins, je ne veux certainement pas faire face à EOT
parce que je ne supporte pas IE8, et SVG
et TTF
sont fâcheusement grand.
Intégrer les polices dans mon javascript est livrable fait via cette configuration webpack:
module: {
rules: [
{test: /\.(tsx|ts)$/, loader: "awesome-typescript-loader"},
{test: /\.css$/, use: ['style-loader', 'css-loader']},
{test: /\.(png|woff|woff2|eot|ttf|svg)$/,
loader: 'url-loader?limit=10240',
options: { name: '[path][name].[ext]'},
},
{test: /\.js$/, enforce: "pre", loader: "source-map-loader"},
]
},
Je suis en fait pas sûr de comment ça fonctionne config url-chargeur. À l'origine, j'essayais juste de faire traiter les fichiers de polices sans altérer leurs noms avec le hash de contenu. Mais Webpack les a intégrés dans le fichier javascript et j'ai décidé que cela me plaisait beaucoup mieux - surtout si je pouvais réduire la taille en supprimant les autres formats de police.
Au début, je pensais que je pouvais omettre les formats de police de la config url-loader, comme:
{test: /\.(png|woff)$/,
loader: 'url-loader?limit=10240',
options: { name: '[path][name].[ext]'},
},
Mais cela ne fonctionne pas avec ce genre d'erreurs:
ERROR in ./~/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
Module parse failed: ....\node_modules\bootstrap\dist\fonts\glyphicons-halflings-regular.eot Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
(Source code omitted for this binary file)
@ ./~/css-loader!./~/bootstrap/dist/css/bootstrap.css 6:4445-4497 6:4520-4572
@ ./~/bootstrap/dist/css/bootstrap.css
@ ./src/main/ts/AppReactRoot.tsx
Alors j'ai pensé que je pourrais peut-être remplacer la police de caractères bootstrap dans mon fichier app.css
et ne spécifier qu'un seul format de police, par exemple:
@font-face {
font-family: "Glyphicons Halflings";
src: url("~bootstrap/dist/css/bootstrap.css") format('woff');
font-weight: normal;
}
Mais cela ne semble pas faire de différence. Le fichier app.css
, si cela fait une différence, ressemble à ceci:
import * as React from "react";
import * as ReactDOM from "react-dom";
import "bootstrap/dist/css/bootstrap.css";
import './app.css';
import {UserApp} from "app/UserApp";
ReactDOM.render(
<UserApp/>,
document.getElementById("root")
);
Ainsi, la question est: Comment puis-je remplacer les valeurs par défaut Bootstrap de sorte que je suis seulement en utilisant le format de police WOFF
?