2016-07-25 13 views
0

Wie verhindere ich, dass Webpacks bündeln? Derzeit schreibe ich eine Bibliothek, die nach der Verteilung einen Fehler You've loaded two copies of React on the page. verursacht. Ich vermute, dass Webpack alle Abhängigkeiten einschließlich devDependencies bündelt.Verhindern, dass Web Packs aggregiert werden

Gibt es einen Weg dahin?

In meinem Fall sollte es für die Bibliothek möglich sein, React out of node_modules zu bekommen.

Also, was ich grundsätzlich will, ist, anstelle von Webpack Auflösung der require('React), sollte es einfach verlassen require('React) unberührt.

Antwort

2

Sie können webpack externals verwenden.

externals: { 
     // Use external version of React 
     "react": "React" 
} 

UPDDetailed docs auf der resultierende Code generiert für externals.

Um webpack "verlassen werden ('Reagieren) unberührt" müssen Sie die folgende Konfiguration

{ 
    output: { libraryTarget: 'commonjs' }, 
    externals: { react: true } 
    ... 
} 
+0

In meinem Verständnis macht es abhängig, dass es eine globale Variable namens "React" gibt, oder? – MoeSattler

+0

@Moezalez Es hängt von 'outputType' ab, den Sie wählen. Wenn Sie den Typ "var" ausgeben, wird dies der Fall sein. Es gibt einen ganzen Abschnitt in [docs] (https://webpack.github.io/docs/configuration.html#externals), der erklärt, welcher resultierende Code erzeugt wird. –

1

Moelalez, so zu stellen wie Yury Tarabanko angegeben, externals Option ermöglicht es Ihnen, eine vorhandene API in Anwendungen zu importieren. Wenn Sie zum Beispiel sagen wollen, dass Sie React von einem CDN über ein separates Tag verwenden und es dennoch als Abhängigkeit über require ("react") in Ihrer Anwendung deklarieren möchten, verwenden Sie die Option externals, um dies zu spezifizieren.

Verwandte Themen