Ich verwende Babel für ES2015-Moduldefinitionen.Standardvariable mit BabelJS exportieren
Ich habe eine Datei a.js
:
require('babel-core/register')({presets: ['es2015']})
require('./b')
Welche b.js
export default b =() => true
Babel diese kompiliert
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = b = function Main() {
return true;
};
erfordert eine Datei aber dann einen Fehler aus:
ReferenceError: b is not defined
at Object.<anonymous> (b.js:1:16)
Hat Ihre kompilierte Ausgabe eine Anweisung use strict? (Es sollte.) Können Sie näher erläutern, was Sie meinen, wenn Sie den kompilierten Code direkt ausführen? Was versuchen Sie für lokale Bindungen/Exporte zu erreichen? Benötigen Sie eine lokale Bindung an die Sache, die Sie als Standard exportieren? – JMM
Ist die Eingabe der gesamte Inhalt von 'b.js' oder ein Auszug? – JMM
Ah meinst du, Babel zeigt mir nur die Fehlerzeile nach der Kompilierung, aber nicht die erste Zeile, die "" strict "verwenden sollte;'? Das könnte ja sein. Ich kopierte einfach die Zeile, die es mir zeigte und versuchte es mit Node auszuführen, was funktionierte, aber es wäre wahrscheinlich nicht, wenn es strikter Modus wäre ... Jedenfalls wollte ich babel verwenden, um eine anonyme Funktion zu erstellen (schönere Syntax, keine Rückkehr) usw.) aber mit einem Namen (babel kompiliert 'a =() =>' zu 'a = Funktion a() {}' –