ich eine Reaktion Anwendung bin erstellen, meine Haupt-Abhängigkeiten sind React
, react-dom
, Redux
, Immutable
und einige andere kleine Bibliotheken. Das Problem ist, wenn ich die Anwendung mit webpack
baue, lädt es einige zusätzliche Module, wie lodash
und jQuery
, weil sie geschachtelte Abhängigkeiten sind, was dazu führt, dass mein Build zu groß ist (überprüft mit WebpackBundleSizeAnalyzerPlugin
). Wenn ich aber zum Beispiel nur die Funktion render
von react-dom
verwende, warum muss ich dann das ganze lodash-Modul zusätzlich laden? Ist es möglich, zu zwingen, dass webpack nur notwendige Teile verschachtelter Abhängigkeitsmodule anstelle von vollen lädt? DankeWebpack Importe nicht benötigten Module aus verschachtelten Abhängigkeiten
Antwort
Es klingt, dass Sie Webpack 1 verwenden, das nicht die Funktion enthält, die Sie möchten: Baumschütteln.
Webpack 2 hat Baumschütteln, das ist Live-Code-Import. Es bedeutet, dass es nur den Code und Teile der Bibliotheken bündelt, die Sie tatsächlich in Ihrer Anwendung verwenden, was weitaus besser ist als die Beseitigung von einfachem toten Code (zuerst Paket und dann nicht verwendeten Code entfernen).
Ich laufe in der Vergangenheit, erwägen Migration zu Webpack 2 und Sie werden diese tolle Funktion bekommen. Ich habe mein Bündel von 30MB auf 1MB. Mit der Minimierung ging es für eine dieser Apps auf 800k runter.
Wenn Sie Webpack 2 aus welchem Grund auch immer nicht verwenden möchten, gibt es andere Alternativen wie rollup. Ich war erfolgreich mit beiden. Rollup hat eine viel einfachere Konfiguration, aber Webpack 2 ist immer noch mein Favorit, da seine inkrementellen Builds beim Betrachten von Assets effizienter (schneller) sind als Rollups Watcher. Beide resultierenden Bündel hatte etwa die gleiche Größe mit Rollup und webpack 2.
Nützliche Links:
- 1. Webpack & Bündelung der benötigten Dateien?
- 2. Webpack-Modul CSS-Abhängigkeiten
- 3. Webpack kann verschachtelte Abhängigkeiten nicht laden
- 4. webpack lädt keine Abhängigkeiten
- 5. Webpack 2 CSS-Module unterstützen
- 6. Wie kann ich das Webpack neu laden, wenn ich eines meiner benötigten Module in package.json geändert habe?
- 7. Webpack Namespacing es6 Module
- 8. Wie erhalten ES6/2015 Importe/Module in Browsern?
- 9. Webpack Alias und ES6 Importe/Exporte
- 10. Npm-Module werden nicht in EMCA2015 JS Importe angezeigt
- 11. Module Vermögen-webpack-Plugin nicht über npm installiert
- 12. Webpack kann die richtigen Module nicht finden
- 13. Kreis Importe mit webpack Rückkehr leeres Objekt
- 14. CSS Module mit webpack Kleindateinamen
- 15. Webpack 2 lädt keine Importe für Angular2 Typescript-Anwendung
- 16. Abhängigkeiten Injection Fehler in Module
- 17. erfordern lodash Module mit webpack
- 18. Webpack-Paket namens requirejs-Module
- 19. Wie kompiliert @ angular2 Module und Abhängigkeiten
- 20. Wie verhalten sich die Webpack-Importe im ReactJS-Projekt?
- 21. Der beste Weg, absolute Importe mit Webpack 2 zu haben?
- 22. Webpack und Express - Kritische Abhängigkeiten Warnung
- 23. Webpack-Import gibt undefined, abhängig von der Reihenfolge der Importe
- 24. Python Importe funktioniert nicht
- 25. webpack babel jsnext: Haupt- und Abhängigkeiten transpiling
- 26. Webpack - [HMR] Hot Module Replacement ist deaktiviert
- 27. npm nicht finden können Abhängigkeiten für einige reagieren-native Module
- 28. webpack Asynchron-Module mit dem Versprechen
- 29. npm install installiert keine verschachtelten Abhängigkeiten
- 30. Module aus Teilprojekt (Rahmen) nicht