Wenn das, was Sie eine einzelne JavaScript-Datei tun möchten, ist zu erstellen, die intern nicht ES6-Module verwenden, so dass Sie es mit Browsern verwenden/node heute, dann empfehle ich die Verwendung von Esperanto (vollständige Offenlegung, ich bin ein Betreuer des Projekts). Es erlaubt Ihnen, ein Bündel zu erstellen, die alle Dateien zusammen ohne die Verwendung eines Laders wie Sie verkettet würde mit so etwas wie browserify oder webpack bekommen. Dies führt in der Regel in kleineren Code (kein Lader), besser Beseitigung von totem Code (bei Verwendung eines minifier wie Google Closure Compiler oder UglifyJS verwenden), und eine bessere Leistung als die JS-Interpreter besser in der Lage ist, das Ergebnis zu optimieren.
Hier ist ein Beispiel für die Verwendung, aber beachten Sie, dass es plenty of tools to integrate Esperanto into your workflow:
var fs = require('fs');
var esperanto = require('esperanto');
esperanto.bundle({
base: 'src', // optional, defaults to current dir
entry: 'mean.js' // the '.js' is optional
}).then(function (bundle) {
var cjs = bundle.toCjs();
fs.writeFile('dist/mean.js', cjs.code);
});
Dieses Beispiel aus dem wiki page on bundling ES6 modules genommen wird.
Was meinst du mit '// Diese Datei existiert nicht mehr in der verketteten scenario.'? Sie müssen es aus einer Datei importieren oder den Inhalt inline einschließen. Versuchen Sie, Bar ohne eine separate Datei zu importieren, um Bar in zu definieren? – DaveS
Was meinst du mit concat? Was ist falsch daran, eine dritte Datei zu erstellen, die beide Elemente der beiden Module exportiert? –
@DaveS Ich meine, dass die Datei 'Javascripts/bar' nach der Verkettung nicht mehr existiert (weil sie verkettet wurde). – Ben