Comment puis-je obtenir Babel 6 à compiler ES5 javascript?
J'ai installé la dernière version de babel. Actuellement 6.4.0. J'ai créer un fichier appelé myclass.js qui a le code suivant.
class MyClass {
constructor(name) {
console.log("I am a MyClass object .. ", name);
}
}
var myclass = new MyClass('1234');
après la création de ma classe, je fais ce qui suit dans la ligne de commande.
$> babel ./src/myclass.js --out-file ./out/app.js
Je m'attends à ce que mon app.js fichier es5 compilé en javascript mais il a exactement le même code que le myclass.js fichier. Ce qui me manque, qui peut être la cause?
- fonctionne pour moi, la façon dont votre
.babelrc
ressemble? - Double Possible de Babel fichier est copié sans être transformé
Vous devez vous connecter pour publier un commentaire.
Vous ne dites pas à Babel pour cible ES5, vous choisissez le nécessaire presets/plugins que le faire pour vous. Par exemple, si vous utilisez le
es2015
prédéfinie, ce sera de compiler ES6 code de ES5 du code compatible. Vous ne spécifiez pas une "cible".Le guide ci-dessous vous guidera à l'aide de Babel à transformer ES6 code dans code peut s'exécuter dans un environnement qui prend en charge ES <= 5.
0. Une note sur les changements de l'API de Babel 5
Dans le documentation de Babel 6:
Et:
______
1. Installer
babel-cli
Tout d'abord, comme dans les docs, vous devez installer
babel-cli
:______
2. Définir les paramètres par défaut dans
.babelrc
Deuxièmement, vous devez utiliser un
.babelrc
(docs) locale de vos fichiers et de définir de façon explicite les presets que vous souhaitez Babel à utiliser. Par exemple, pour ES6+ dispose d'utiliser leenv
preset.L'installer:
Puis de le déclarer dans votre
.babelrc
:Remarque: si vous utilisez Babel 7.x vous pouvez utiliser un "projet à l'échelle de configuration" (
babel.config.js
) (docs) qui "s'applique largement, même si les plugins et les presets d'appliquer facilement à des fichiers dans node_modules ou dans un lien symbolique paquets".______
3. Exécuter
babel
Maintenant en cours d'exécution de la
babel
de commande comme dans votre exemple devrait fonctionner:Vous pouvez également utiliser un système de regroupement comme webpack, cumulatif, ou browserify, avec leurs babel plugin.
preset: ES5
?) Donces2015
signifie que vous pouvez utiliser ES6 et ils seront transpiled.