jusqu'à présent, le plus petit bundle que je peux créer avec angular cli est en exécutant
ng build --aot true -prod
Je me demandais si le processus de construction supprime également les classes CSS inutilisées, par exemple de bootstrap?
Sinon, comment puis-je y ajouter des bibliothèques comme purifycss?
EDIT avril 2018
Je n'ai toujours pas trouvé de solution satisfaisante à son problème, en particulier une solution compatible avec les modules de chargement paresseux à angle ...
À votre santé
Vous pouvez peut-être jeter un œil à https://github.com/Angular-RU/angular-cli-webpack . Cela vous donne la possibilité de modifier la configuration du webpack sans éjecter. Et devinez quel est le premier exemple: Supprime les sélecteurs inutilisés de votre CSS . Je ne l'ai pas essayé moi-même mais cela pourrait être une option.
module.export={
plugins: [
new ExtractTextPlugin('[name].[contenthash].css'),
// Make sure this is after ExtractTextPlugin!
new PurifyCSSPlugin({
// Give paths to parse for rules. These should be absolute!
paths: glob.sync(path.join(__dirname, 'app/*.html')),
})
]
};
installez d'abord purifycss webpack
J'ai fait des recherches récemment à ce sujet, mais je n'ai trouvé aucun moyen vraiment sûr de supprimer les CSS inutilisés. Cependant, je suis tombé sur quelques outils qui vous aideraient à détecter le code mort dans VS Code. Il y a un extension qui n'est pas parfait mais semble prometteur. J'ai également fait des recherches sur la façon de supprimer les CSS Angular Material CSS si vous les utilisez) et j'ai créé une vidéo à ce sujet. Vous pouvez vérifiez ceci ici .
Mais au moins maintenant (en 2020), il n'y a aucun moyen fiable d'atteindre ce que vous voulez et de voir également un réponse de Angular membre de l'équipe principale à ce sujet
Si vous êtes éjecté, c'est-à-dire ng eject
. Ensuite, vous pouvez personnaliser la construction du webpack pour faire presque tout. J'ai quelques options activées pour minimiser les styles dans le cadre de la construction avec minifyCSS
dans deux des plugins.
LoaderOptionsPlugin
new LoaderOptionsPlugin({
"sourceMap": false,
"options": {
"html-minifier-loader": {
"removeComments": true,
"collapseWhitespace": true,
"conservativeCollapse": true,
"preserveLineBreaks": true,
"caseSensitive": true,
"minifyCSS": true
},
HtmlWebpackPlugin
new HtmlWebpackPlugin({
"template": "./src\\index.ejs",
"filename": "./index.html",
"hash": true,
"inject": true,
"compile": true,
"favicon": 'src/assets/Flag.png',
"minify": {
collapseWhitespace: true,
removeComments: true,
minifyCSS: true
},
Je ne sais pas si cela compte comme réponse car ce n'est pas vraiment lié à angular-cli, mais j'ouvre mon projet en texte sublime, et je lance nusedCssFinder , qui met en évidence toutes les propriétés inutilisées dans mon css fichier.
Si vous utilisez un pack Web, vous pouvez le faire comme: -
Tout d'abord, installez purifycss-webpackusing npm i -D purifycss-webpack
module.export={
plugins: [
new ExtractTextPlugin('[name].[contenthash].css'),
// Make sure this is after ExtractTextPlugin!
new PurifyCSSPlugin({
// Give paths to parse for rules. These should be absolute!
paths: glob.sync(path.join(__dirname, 'app/*.html')),
})
]
};
Visitez le lien ci-dessous pour une compréhension détaillée.