2017-03-21 5 views
0

Ich weiß, dies könnte ein totales Missverständnis dessen, was Webpack ist, aber ich konnte nirgendwo eine direkte Antwort finden.Webpack Bündelung einfacher JS-Dateien

Im Grunde habe ich zwei Dateien:

hello.js

function hello() { 
    console.log('Hello, world!'); 
} 

entry.js

require('./hello.js'); 

hello(); // should log 'Hello, world!' 

Ich wollte für schnelleres Laden sie in einer einzigen Datei packen mit Webpack. Mein Zustand war, dass ich hallo.js in keiner Weise ändern muss (sagen wir es ist eine große, verschleierte Bibliothek, die ich nicht modifizieren darf).

ich erwartet, dass in result.js gibt mir ein brauchbares Paket

webpack entry.js result.js 

läuft, sondern result.js gibt mir diese Fehlermeldung:

Uncaught ReferenceError: hello is not defined 

Gibt es eine Möglichkeit zu erreichen, was ich will? Einfach Skripts zusammenfassen, um sie im globalen Namespace verfügbar zu machen, ohne ihnen etwas hinzufügen zu müssen?

Antwort

1

Datei hello.js ist nichts zu exportieren, müssen Sie exportieren hallo Funktion von hello.js wie diese Datei,

module.exports = function() { 
    console.log('Hello, world!'); 
} 

und dann in Ihrem Eintrag Datei.

var hello = require('./hello.js'); 
hello(); 
+0

Also gibt es keine Möglichkeit, dies zu tun, ohne 'hello.js' zu ändern? –

+0

Sie müssen die Methoden/Objekte/etc exportieren. um es global verfügbar zu machen, das Sie in einer anderen Datei verwenden können, andernfalls ist es für dieses Modul privat. – Vikramaditya

+0

Es ist zu deinem Vorteil, dass webpack das nicht tut, eines Tages wirst du webpack für dieses großartige Feature und viele mehr danken. – Vikramaditya

Verwandte Themen