2016-07-25 8 views
3

In meinem Webpack-Build möchte ich React von einem CDN laden, aber nicht ReactDOM, da es eine extra Roundtrip für eine sehr kleine Datei erfordert.Verwenden von Webpack, um Reagieren von CDN, aber nicht ReactDOM

Meine Webpack-Konfiguration hat den folgenden Code-Block deklariert "externals", so dass es nicht Build diese Dateien (ich stattdessen CDNs).

webpack.config.js

... 

externals: { 
    react: 'React' 
}, 

... 

Das Problem ist, dass nur in Äußerlichkeiten Reagieren einschließlich baut immer noch reagieren, weil ReactDOM davon abhängt.

node_modules/reagieren-dom/index.js

module.exports = require('react/lib/ReactDOM'); 

Hinzufügen 'react-dom': 'ReactDOM' zu Externen entfernt sie effektiv sowohl aus dem Bündel, aber ich will nicht das ReactDOM CDN müssen schließen ...

Wie kann ich Webpack konfigurieren, um React von einem CDN zu laden, aber ReactDOM in mein Hauptpaket aufzunehmen?


Hinweis: Ich verwende webpack 2.1.0-beta17 und 15.1.0 React.


aktualisieren habe ich versucht, react/lib/ReactDOM zu Externen hinzufügen.

... 

externals: { 
    react: 'React', 
    'react/lib/ReactDOM': 'commonjs react-dom' 
}, 

... 

Aber ich bekomme den folgenden Fehler.

benötigt, ist nicht definiert

+0

Aber es sagt, es ist [mit React einbezogen werden soll] (https://github.com/facebook/react/tree/master/packages/react-dom), wenn Sie also React auf CDN setzen, haben Sie auch ReactDOM inbegriffen. – AlexandruB

+0

Richtig, ich möchte nur ReactDOM in mein Paket aufnehmen, anstatt CDN dafür aufzunehmen. – Himmel

+0

Ich verstehe den Anwendungsfall nicht, aber ich denke, definieren Sie "reac-dom" als eigenen Webpack-Eintrag und machen Sie es zu einem [separaten Brocken] (https://github.com/webpack/webpack/tree/master/examples/ Mehrfach-Commons-Chunks)? – AlexandruB

Antwort

2

[keine Antwort, zu groß für einen Kommentar]

See gibt https://github.com/facebook/react/issues/5413, https://github.com/facebook/react/issues/6128, die von + ReactDom, Reaktion für mit einem CDN Bündel argumentieren, was würde schwimme dein Boot, wenn ich es richtig verstehe. Dan Abramov fühlt es, also bin ich hoffnungsvoll. Beachten Sie jedoch, his comment, dass ReactDOM bald viel größer wird.

+0

Sehr interessante Sachen. Überraschend zu finden, dass ein solches Bündel noch nicht existiert. – Himmel

Verwandte Themen