babelify 6 avec browserify et la es2015 preset n'est pas de travail
Je cherche à utiliser la nouvelle babel de presse, et en essayant d'utiliser le es2015 preset babel ne semble pas être en mesure de comprendre flèche fonctions?
Mon installation sur la pré-babel6 a été comme suit:
transform: [['babelify', {sourceMap: false, stage: 0, optional: 'runtime', ignore: ["*.min.js"]}]]
et avec babel6
transform: [['babelify', {"presets": ["es2015"]}]]
qui ne fonctionne pas. Pourquoi est-ce?
modifier
ajoutant "stage-0"
se débarrasser de la syntaxe des messages d'erreur, mais a arrêté moi d'être en mesure d'étendre n'importe quoi avec l'erreur: 'this' is not allowed before super()
quand j'ai en effet obtenu un super()
appel.
modifier
Créé une simple application de test avec quelques es7 et essayé d'utiliser le babel-core exiger crochet, même problème.
modifier
Ok, donc j'ai rétréci vers le bas à la scène-0 travailler autrement babeljs 6^.
Voici ce que j'ai remarqué:
Exécuter le fichier
require("babel-core/register")(
{
presets: ["es2015", "stage-0"]
}
);
require("./app.js");
Fonctionne avec:
class extendable {
constructor() {
console.log('extended')
}
}
class app extends extendable {
constructor() {
super();
this.method();
this.method2();
}
method() {
//arrow functions
setTimeout(() => {
console.log("works")
}, 1000)
}
/**
* arrow function method
*/
method2 = () => {
console.log('works')
}
}
new app();
Ne fonctionne pas avec:
class extendable {
constructor() {
console.log('extended')
}
}
class app extends extendable {
constructor() {
super();
this.method();
this.method2();
}
method() {
//arrow functions
setTimeout(() => {
console.log("works")
}, 1000)
}
/**
* arrow function method
*/
method2 = () => {
//give an error: 'this' is not allowed before super()
this.state = "hello";
}
}
new app();
Donc je suis un peu confus. Est-ce vraiment une syntaxe incorrecte? Comment ai-je été en mesure d'utiliser cette pré-babel6?
Je suis d'exécution par le biais de module-deps, tout est à sa dernière version.
OriginalL'auteur Julien Vincent | 2015-11-10
Vous devez vous connecter pour publier un commentaire.
C'est un Babeljs bug
Voir
J'espère que cela va voir un fast-fix.
modifier #2942 est pas référence à la même bug. Voici une question suite à ce bug: #3028
Même ici, je suis toujours à bien faire toutes sortes d'erreurs avec Babel6 soi-disant correction de bugs, en essayant de restructurer mes classes qui ont été parfaitement bien dans 5,...un peu fatigué.
Je vais tester et voir si je peux reproduire l'erreur. Mais venant de leur blog: "Pas tous les intégrations ont encore été mis à jour. C'est un très perturbateur majeur, de sorte s'il vous plaît garder avec nous comme nous le lisser les bords." Donc, je suggère de rester avec 5 jusqu'à ce que la majorité des bogues ont été corrigés
Je peux confirmer que ce n'est pas fixe
Avoir ce problème aussi, et les liens vers les questions sont tous morts maintenant
OriginalL'auteur Julien Vincent
Ça dépend un peu sur la façon dont vous êtes l'exécution de browserify, c'est ce que le dépôt Github de babelify (https://github.com/babel/babelify) dit à ce sujet :
De la CLI:
Avec Nœud:
transform("babelify", {presets: ["es2015", "react"]})
est ce qui ne fonctionne pasAvez-vous installé les presets?
npm install --save-dev babel-preset-es2015
oui, j'ai tout installé correctement
Presets avec gulp ne semble pas fonctionner à tous. Son frustrant comment souvent tout change. Une version de babelify ne fait qu'une chose et la prochaine version des tas de trucs changements..
OriginalL'auteur Timon