Ich habe ein Projekt in ES6 mit Webpack als Bundler geschrieben. Die meisten Transpilierungen funktionieren einwandfrei, aber wenn ich versuche, Dekorateure irgendwo einzuschließen, wird folgende Fehlermeldung angezeigt:
Decorators are not supported yet in 6.x pending proposal update.
Ich habe mir den Babel Issue Tracker angesehen und konnte dort nichts finden. Ich gehe also davon aus, dass ich ihn falsch verwende. Meine Webpack-Konfiguration (die relevanten Bits):
loaders: [
{
loader: 'babel',
exclude: /node_modules/,
include: path.join(__dirname, 'src'),
test: /\.jsx?$/,
query: {
plugins: ['transform-runtime'],
presets: ['es2015', 'stage-0', 'react']
}
}
]
Ich habe keine Probleme mit irgendetwas anderem, Pfeilfunktionen, die Zerstörung aller funktionieren gut, dies ist das einzige, was nicht funktioniert.
Ich weiß, ich könnte immer ein Downgrade auf Babel 5.8 durchführen, wo es vor einiger Zeit funktioniert hat, aber wenn es eine Möglichkeit gibt, dies in der aktuellen Version (v6.2.0) zum Laufen zu bringen, würde es helfen.
presets
.Antworten:
Dieses Babel-Plugin hat bei mir funktioniert:
https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy
.babelrc
oder
Webpack
Native reagieren
Mit
react-native
müssen Siebabel-preset-react-native-stage-0
stattdessen das Plugin verwenden..babelrc
Bitte lesen Sie diese Frage und Antwort für eine vollständige Erklärung.
quelle
development
.production
auchenv
Block stecken? Sie könnenplugins
als Geschwister vonpresets
transform-class-properties
auch babeljs.io/docs/plugins/transform-class-properties installieren und sicherstellen musste, dass das Legacy-Plugin vor dem Plugin für die Transformationsklasse steht, wie in den Dokumenten unter github.com/loganfsmyth/babel-plugin- beschrieben. verwandeln-Dekorateure-VermächtnisNachdem ich 5 Minuten im lockeren Webchat von babeljs verbracht hatte, stellte ich fest, dass Dekorateure in der aktuellen Version von babel (v6.2) kaputt sind. Die einzige Lösung scheint zu diesem Zeitpunkt ein Downgrade auf 5.8 zu sein.
Es scheint auch, dass sie ihren Issue-Tracker von Github auf https://phabricator.babeljs.io verschoben haben
Ich schreibe das alles auf, da ich nach stundenlangem Suchen die aktuelle Dokumentation als sehr schlecht und mangelhaft empfunden habe.
quelle
Nur zu installieren
babel-plugin-transform-decorators-legacy
hat bei mir nicht funktioniert (ich habe eine Konfiguration mit Enzym zusammen mit Karma). Es stellte sich heraus, dass die Installation vontransform-class-properties
: transform-class-properties und die Sicherstellung, dass das Legacy-Plugin vor dem Transformationsklassen-Plugin gemäß den Dokumenten in transform-decorators-Legacy steht, endlich für mich funktioniert haben.Ich verwende auch keine
.babelrc
Datei, aber das Hinzufügen zu meinerkarma.conf.js
Datei hat für mich funktioniert:Ich habe es auch meinen Ladern hinzugefügt:
quelle
Sie benötigen lediglich ein Plugin für Transformationsdekorateure: http://babeljs.io/docs/plugins/transform-decorators/
quelle
Wenn Sie Ihr Projekt von Babel 6 auf Babel 7 aktualisiert haben, möchten Sie es installieren
@babel/plugin-proposal-decorators
.Wenn Sie ältere Dekorateure unterstützen möchten, wie sie in Babel 5 verwendet werden, müssen Sie Ihre
.babelrc
wie folgt konfigurieren :Stellen Sie sicher, dass dies für den Fall, dass Sie letzteres verwenden,
@babel/plugin-proposal-decorators
vorher erfolgt@babel/plugin-proposal-class-properties
.quelle