Erstellen eines Webpacks für die Produktion - minimierte Abhängigkeiten
Say es gibt ein Modul auf Npm namens "Awesomepackage". Ich kann es als Abhängigkeit meiner Anwendung über @ registrierepackage.json
wie so:
npm i --save awesomepackage
Inspecting mynode_modules
Ordner Ich sehe einen Ordner mit dem Namen "awesomepackage", der so aussieht:
- index.js
- package.json
- README.md
- lib/
- awesomepackage.min.js
und ich kann das Paket in meiner eigenen Anwendung wie folgt verwenden:
import {AwesomeThing} from 'awesomepackage';
Meine FrageWenn ich meine Anwendung mit dem Webpack erstelle, wird mein endgültigesbundle.js
enthält immer den Quellcode vonnode_modules/awesomepackage/index.js
- unabhängig von Umgebungsvariablen, die ich eingerichtet habe (z. B.NODE_ENV=production
).
Kann webpack auf irgendeine Weise angewiesen werden, die vorgefertigten Dateien zu verwenden (z. B.node_modules/awesomepackage/lib/awesomepackage.min.js
) Wenn sie als Teil eines NPM-Pakets geliefert werden, anstatt von der Quelle neu zu erstellen?
Ich habe Lösungen gesehenDa verwende resolve.alias
undnoParse
in der Webpack-Konfiguration mit fest codierten Pfaden zu minimierten Quelldateien, aber kann das den Zweck der Verwendung von npm und Webpack nicht meistens aufheben? Ich möchte nicht die Pfade zu den minimierten Build-Dateien jeder Abhängigkeit fest programmieren und pflegen müssen!
Ich bin hierher gekommen, weil meinbundle.js
sprang 2,5 MB, als ichmoment.js
- 167 KB, einschließlich aller Gebietsschemas, aber der Quellcode enthält 2 MB an Tests.
Es steckt eindeutig mehr dahinter, als nur das finale @ zu minimierbundle.js
Datei am Ende. Beispiel: Warum sollte jemand Hunderte unnötiger Komponententests für Abhängigkeiten in den endgültigen Produktionscode aufnehmen wollen? Sie tun es nicht. Aus diesem Grund bieten die meisten Bibliotheken eindist
(oder ein ähnlicher) Ordner als Teil ihres npm-Moduls.