Exklusive Webpack-Externals mit Bibliothekskomponenten / -fragmenten

8

Webpack war uns beim Schreiben von isomorphem Javascript und beim Austauschen von npm -Paketen für Browser-Globals sehr nützlich.

Also, wenn ich das Paket node-fetch npm auf Node.js verwenden, aber beim Bündeln ausschließen und einfach den systemeigenen Browser fetch global verwenden möchte, kann ich es einfach in meinem webpack.config.js : %Vor%

Und dann benötigt mein CommonJS const fetch = require('node-fetch') wird in const fetch = window.fetch (oder was auch immer es tut) transpiliert.

So weit, so gut. Hier ist meine Frage: Das ist einfach genug, wenn Sie ganze Module benötigen, aber was ist, wenn ich ein Submodul / eine individuelle Eigenschaft eines exportierten Moduls benötigen muss?

Sagen wir zum Beispiel, ich möchte den WhatWG URL-Standard isomorph verwenden. Ich könnte das urlutils npm -Modul verwenden, welches module.exports die gesamte URL-Klasse, also sehen meine Anforderungen folgendermaßen aus:

%Vor%

Und dann kann ich urlutils in meinem externals Abschnitt auflisten, kein Problem. Aber in dem Moment, in dem ich ein neueres (und mehr unterstütztes) npm -Paket, sagen wir, whatwg-url , verwenden möchte, weiß ich nicht, wie man es webpackt, da meine Anforderungen wie aussehen:

%Vor%

Wie sage ich Webpack, das Vorkommen von require('whatwg-url').URL durch den globalen Browser URL ? zu ersetzen?

    
Dmitri Zagidulin 29.03.2017, 18:42
quelle

1 Antwort

1

Zuerst möchte ich hervorheben, dass ich kein Webpack-Experte bin. Ich denke, es gibt eine bessere Art der Bündelung während der Bauzeit. Wie auch immer, hier ist meine Idee:

webpack.config.js

%Vor%

entry.js

%Vor%

content.js

%Vor%

index.html

%Vor%

Wie ich im Kommentar gesagt habe, wird es zwei Bibliotheken für das Webbündel bündeln - Platzverschwendung.

Nun, für NodeJS, ändern Sie die target von web in node und es sollte die andere Bibliothek nehmen. Ссылка

Ich habe ein Modul für 'isomorphe' Apps gefunden: Ссылка

Ich denke, Sie könnten versuchen, zwei, mittlere content.js -Dateien als Parameter für das Modul zu verwenden. Einer enthält urlutis und der zweite whatwg-url . Dann würde es dynamisch erkennen, wofür es Ihre Dateien kompiliert und das richtige Modul verwendet.

Ich hoffe, es hilft.

    
Oskar 07.04.2017 12:32
quelle

Tags und Links