Tree Shake, SideEffects und CSS von Vue und Webpack: Laden Sie CSS-Dateien nicht verwendeter Komponenten
P粉068174996
2023-08-25 10:22:08
<p>Wir versuchen herauszufinden, wie CSS-Bäume in Vue-Einzeldateikomponenten bei Verwendung von Webpack richtig gehandhabt werden. </p>
<p>In package.json habe ich: <code>"sideEffects": ["*.css", "*.less","*.vue" ]</code>, This scheint ordnungsgemäß zu verhindern, dass Vue-Komponenten geladen werden, wenn dies nicht der Fall sein sollte. Allerdings wird jedes einzelne <code><style></code>-Tag auf die Seite geladen. </p>
<p>Wir laden unseren SFC aus einem NPM-Paket, das eine Reihe von Exporten auflistet, zum Beispiel: </p>
<pre class="brush:php;toolbar:false;">bla aus 'blah.vue' exportieren;
exportiere blah2 aus 'blah2.vue';
exportiere blah3 aus 'blah3.vue';</pre>
<p>Selbst wenn wir nur <code>import { blah3 } from 'a-npm-package';</code> haben, werden die Stile für alle drei Komponenten enthalten sein. Da wir viele Vue-Komponenten haben, führt dies dazu, dass der Seite viel ungenutztes CSS hinzugefügt wird. </p>
<p>Wie verhindern wir, dass das passiert? Es gibt definitiv bessere und dynamischere Möglichkeiten, mit Stilen umzugehen, als sie einfach alle auf der Seite abzulegen, selbst wenn nur 1/10 davon verwendet wird. </p>
<p>Vielen Dank</p>
你可以使用MiniCssExtractPlugin来进行CSS的树摇。如果你使用的是scss或sass,你也可以添加这些loader。